tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB2005でMAPIを使用したい
記事No7534
投稿日: 2008/05/15(Thu) 17:47
投稿者皐月
こんにちは、いつもお世話になっております。

VB2005のプログラムでMAPIでメール送信をしようと思っています。

Dim objSession As MAPI.Session

としてMAPIを参照しようとしたところ、定義されてエラーとなります。
このとき、MAPIをツールボックスに追加しようと思ったのですが、

Microsoft MAPI Messages Control,version 6.0
Microsoft MAIP Session Control,version 6.0

しか見当たりませんでした。
これはVB6.0のときに使用していたコントロールだと思うのですが、VB2005用ではMAPIはなくなったのでしょうか?

ご存知の方ご教授お願いいたします。

[ツリー表示へ]
タイトルRe: VB2005でMAPIを使用したい
記事No7535
投稿日: 2008/05/15(Thu) 18:56
投稿者魔界の仮面弁士
> MAPIで
MAPI 以外の方法でも良いのでしょうか?
http://support.microsoft.com/kb/200018/en-us

> メール送信をしようと思っています。
System.Net.Mail 名前空間(≠System.Web.Mail 名前空間)は使えませんか?

> これはVB6.0のときに使用していたコントロールだと思うのですが、
そうですね。ActiveX 版のコントロールです。

> VB2005用ではMAPIはなくなったのでしょうか?
# MAPI は仕様の名前なので、無くなったと言うと御幣がありそう。

どうしても MAPI が必要なら、VB6 のコンポーネントを使い続けることもできますし、
あるいは、MAPI32.DLL の API を直接呼び出して使う事もできるかと。

.NET 用にラッピングされた MAPI コンポーネントが必要であれば、
下記にてソース付きで公開されています。
http://www.codeproject.com/KB/IP/CMapiEx.aspx


あとは、Outlook があればそれを使う事もできますし、あるいは
Windows Mail を COM 制御、という手法とか。
http://support.microsoft.com/kb/220595/ja
http://msdn2.microsoft.com/en-us/library/ms709546.aspx

[ツリー表示へ]
タイトルRe^2: VB2005でMAPIを使用したい
記事No7539
投稿日: 2008/05/16(Fri) 11:58
投稿者皐月
魔界の仮面弁士さん、こんにちは!
いつも大変お世話になっております。

> > MAPIで
> MAPI 以外の方法でも良いのでしょうか?
> http://support.microsoft.com/kb/200018/en-us
>
> > メール送信をしようと思っています。
> System.Net.Mail 名前空間(≠System.Web.Mail 名前空間)は使えませんか?
>

MAPI以外の方法でも構いません。
作成しているプログラムは、ソフトを起動してある条件がTrueとなったときに設定したメールアドレスにメールを自動的に送信するようなものを作成しております。

System.Net.Mailも試してみたのですが、SmtpClientでSMTPを指定しなければならないこと、またSystem.Net.Mail.MailMessageで送信する側のアドレスを指定しなければいけない(こちらはアドレスが間違えていても届いてしまうようですが・・・)ため、Outlookを立ち上げてOutlookからメールを送信するようにしようとしていました。
送信者によってはSMTPの設定だけでなく、自分の送信アドレスもわからない方もいると思うので、Outlookのメール送信と同様にTOのみの指定で済むようにしたかったのです。
ただ、これだとメールを自動送信することができませんね><
Outlookの設定から、SMTPや送信者のアドレスを取得できるといいのですが・・・・。

> > これはVB6.0のときに使用していたコントロールだと思うのですが、
> そうですね。ActiveX 版のコントロールです。
>
> > VB2005用ではMAPIはなくなったのでしょうか?
> # MAPI は仕様の名前なので、無くなったと言うと御幣がありそう。
>
> どうしても MAPI が必要なら、VB6 のコンポーネントを使い続けることもできますし、
> あるいは、MAPI32.DLL の API を直接呼び出して使う事もできるかと。
>
> .NET 用にラッピングされた MAPI コンポーネントが必要であれば、
> 下記にてソース付きで公開されています。
> http://www.codeproject.com/KB/IP/CMapiEx.aspx
>
>
> あとは、Outlook があればそれを使う事もできますし、あるいは
> Windows Mail を COM 制御、という手法とか。
> http://support.microsoft.com/kb/220595/ja
> http://msdn2.microsoft.com/en-us/library/ms709546.aspx

参考になるURLありがとうございます。
VB6のコンポーネントを呼び出さないと、使用できないのですね。
メール送信はいくつか方法があるようですので、MAPI以外の方法を考えてみたいと思います。

[ツリー表示へ]