DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

VB.NETのSMTPメール送信プログラムについて

はじめましてKOROと申します。
こちらの「どぼん!のVisual Basic .NET Tips」の「SMTPでメールを送信する(添付ファイル、HTMLファイル、優先順位指定など)」を参考にメール送信プログラムを作成していたところ次の問題点が発生しました。。ご教授いただけたらと思います。開発環境はOS:Windows2000(SP3),VisualBasic.NETです。
宜しくお願いします。

1)添付ファイルについてなのですが、複数の添付ファイルを送信するには、添付  ファイル数分Dim objAttachment As System.Web.Mail.MailAttachment
でのアタッチメントオブジェクトの生成が必要なのでしょうか?、CCなどのよ  うに「;」区切りで試したところエラーになってしまいました。

2)1)に続き添付ファイルに関してなのですが、送信したメールを
Outlook Expressを受信すると、「次の添付ファイルは安全でないため、メー  ルからのアクセスが削除されました。」のようなメッセージが表示され、受信  した添付ファイルが開けない状態になってしまいます。Outlook Expressの
  セキュリティ設定の問題なのでしょうか?

3)objSmtp.Send(objMessage)でメール送信後の判定処理をおこないたいので  すが可能でしょうか?送信が成功したとか、失敗したとか、Try〜Catchで
  エラーを取得できるのですか?また、取得するための方法をご存知でしたら教  えて下さい。
こんにちは。はじめまして。

>1)添付ファイルについてなのですが、複数の添付ファイルを送信するには、添付  ファイル数分Dim objAttachment As System.Web.Mail.MailAttachment
> でのアタッチメントオブジェクトの生成が必要なのでしょうか?、CCなどのよ  うに「;」区切りで試したところエラーになってしまいました。

送付ファイルの数だけMailAttachmentクラスのインスタンスが必要ということでしょう。それらをAttachments.Addで追加していきます。

>2)1)に続き添付ファイルに関してなのですが、送信したメールを
> Outlook Expressを受信すると、「次の添付ファイルは安全でないため、メー  ルからのアクセスが削除されました。」のようなメッセージが表示され、受信  した添付ファイルが開けない状態になってしまいます。Outlook Expressの
>  セキュリティ設定の問題なのでしょうか?

私はOutlookを使っていないのでよくは分かりませんが、普通のメーラーで同じ添付ファイルを送信した時はどうなのでしょうか?

>3)objSmtp.Send(objMessage)でメール送信後の判定処理をおこないたいので  すが可能でしょうか?送信が成功したとか、失敗したとか、Try〜Catchで
>  エラーを取得できるのですか?また、取得するための方法をご存知でしたら教  えて下さい。

これはどのようなエラーを捕捉したいということでしょうか?SMTPサーバーとのやり取りで生じるエラーは補足出来るのではないでしょうか?メールが本当に相手先に届いたかといったことは通常分からないものと思いますが。
どぼんさんご教授いただきありがとうございます。


1)
>送付ファイルの数だけMailAttachmentクラスのインスタンスが必要ということでしょう。それらをAttachments.Addで追加していきます。


●添付ファイル数分MailAttachmentクラスを生成する方法でいきたいと思います。



2)
>私はOutlookを使っていないのでよくは分かりませんが、普通のメーラーで同じ添付ファイルを送信した時はどうなのでしょうか?


●Outlookの設定で「セキュリティ」の「ウィルスの可能性がある添付ファイルを保存したり開いたりしない」という設定項目を解除したところ普通に受信添付ファイル
を参照できるようになりました。



3)
>これはどのようなエラーを捕捉したいということでしょうか?SMTPサーバーとのやり取りで生じるエラーは補足出来るのではないでしょうか?メールが本当に相手先に届いたかといったことは通常分からないものと思いますが。


●SMTPサーバとのやりとりで発生したエラーをキャッチしたいのですが、
SMTPメールの送信処理では、SMTPサーバへの接続でしたり、「EHLO」コマンド発行や、「MAIL FROM」コマンドの発行などをobjSmtp.Send(objMessage)での送信処理で行っていると思うのですが。。SMTPサーバへの接続失敗などをTry〜catchで取得する方法をご存知でしたら教えて頂きたいです。ヘルプを見ているのですがよくわかりません。。続けて調べてみます。。
>1)
>>送付ファイルの数だけMailAttachmentクラスのインスタンスが必要ということでしょう。それらをAttachments.Addで追加していきます。
>
>
>●添付ファイル数分MailAttachmentクラスを生成する方法でいきたいと思います。

「クラスを生成する」というと意味が違ってくると思うのですが。

>3)
>>これはどのようなエラーを捕捉したいということでしょうか?SMTPサーバーとのやり取りで生じるエラーは補足出来るのではないでしょうか?メールが本当に相手先に届いたかといったことは通常分からないものと思いますが。
>
>
>●SMTPサーバとのやりとりで発生したエラーをキャッチしたいのですが、
>SMTPメールの送信処理では、SMTPサーバへの接続でしたり、「EHLO」コマンド発行や、「MAIL FROM」コマンドの発行などをobjSmtp.Send(objMessage)での送信処理で行っていると思うのですが。。SMTPサーバへの接続失敗などをTry〜catchで取得する方法をご存知でしたら教えて頂きたいです。ヘルプを見ているのですがよくわかりません。。続けて調べてみます。。

SMTPサーバへの接続失敗はTry Catchで補足出来るようですが、実際にやってみましたか?
>>1)
>>●添付ファイル数分MailAttachmentクラスを生成する方法でいきたいと思います。
>
>「クラスを生成する」というと意味が違ってくると思うのですが。

そうなんですか。。すみません。言葉の意味をよく知らずに書いています。。


>>3)
>>>これはどのようなエラーを捕捉したいということでしょうか?SMTPサーバーとのやり取りで生じるエラーは補足出来るのではないでしょうか?メールが本当に相手先に届いたかといったことは通常分からないものと思いますが。
>>●SMTPサーバとのやりとりで発生したエラーをキャッチしたいのですが、
>>SMTPメールの送信処理では、SMTPサーバへの接続でしたり、「EHLO」コマンド発行や、「MAIL FROM」コマンドの発行などをobjSmtp.Send(objMessage)での送信処理で行っていると思うのですが。。SMTPサーバへの接続失敗などをTry〜catchで取得する方法をご存知でしたら教えて頂きたいです。ヘルプを見ているのですがよくわかりません。。続けて調べてみます。。
>
>SMTPサーバへの接続失敗はTry Catchで補足出来るようですが、実際にやってみましたか?

ヘルプで調べているんですが。。
catchのExceptionで、System.Web.HttpExceptionというのがあるようで、
GetHttpCodeなどでエラーコードを取得できないか?。。と思いやっているのですがよくわかりません。。開発マシンよりLANケーブルを抜いて、SMTPサーバへの接続時にエラーが発生する状態をつくり試しているのですが、GetHttpCodeでは「500」というコードが返されています。500というコードについてヘルプでは「InnerException コードも 0 以外の HTTP コードも取得できない場合は、HTTP エラー コード 500 が返されます。」と記述されていますが、よくわかっていません。そもそもHTTPエラーではなくSMTPエラーでは、と思うのですが、SMTPでのエラー取得方法も見つかっていません。。

DOBON.NET | プログラミング道 | プログラミング掲示板