- - PR -
smtpmailで存在しないメールアドレスへ送信した場合のエラー処理
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-02-21 13:14
システムで作成したファイルをメールにてユーザーへ送付するプログラムを作成しています。
この時、存在しないアドレスへメールをした場合、プログラムでExceptionを取ることはできないのでしょうか? 現在、以下のような作りになっていますが、存在しないアドレスへメールを送信した場合も正常終了してしまい、エラー処理を行うことができません。 ---------------------------------------------------------------- Try System.Web.Mail.SmtpMail.SmtpServer = "smtp.server" Dim Message As New System.Web.Mail.MailMessage() Message.From = "TEST@test.jp" Message.To = TEST@test.jp1 '存在しないアドレス Message.Subject = "タイトル" Message.Body = "本文" Dim attachment As New System.Web.Mail.MailAttachment("添付ファイル", _ Web.Mail.MailEncoding.Base64) Message.Attachments.Add(attachment) System.Web.Mail.SmtpMail.Send(Message) Catch ex As Exception 'エラー処理 Call ErrProc ErrMsg = ex.ToString mblnErrFlg = True Exit Function End Try ------------------------------------------------------------------ ちなみに、FROMのメールアドレスは存在しないアドレスです。このため、メール送信エラーが誰かに通知されることはありません。 |
|
投稿日時: 2005-02-21 14:01
SMTPの仕組みを勉強していただけば、配送エラーの検出が容易ではない事は直ぐに分かるかと思います。
Fromアドレスに実在しないメールアドレスを入れるなどと言う事は止めておいたほうが良いでしょう。そもそもルールを無視しているし、スパムメールとして排除される可能性が高いです。まさか本番もtest.jpで送信したりはしてないですよね?test.jpと言うドメインは実在しますよ。 Fromアドレスに実在するメールアドレスを入れておけば、エラーメールが返送されてきます。エラーメールを受信したらエラーとして扱うのが順当でしょう。 最近はスパム対策の一環でエラーメールを送り返さないようにメールサーバーを設定している事も多いです。配送エラーを確実に検出する方法は無いと思ったほうが良いでしょう。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ |
|
投稿日時: 2005-02-21 14:21
ありがとうございます。
知識不足&勉強不足でした。 プログラムの仕様を考え直したいと思います。 |
|
投稿日時: 2005-02-22 12:26
もう既に解決済みなら不要ですが…。
私はMXレコードかAレコードが存在しない場合、エラーを返す、と言う 入力精査を行っております。さすがにアカウントが存在するかまでは確認できませんが。 (.Netで上記のようなプログラムが書けるかわかりませんが、私は市販のDLLを使っています) どのようなものを作りたいのか不透明ですが、 メールサーバー側でメール着信時にプログラムを起動させる、と言うことがメールサーバーに よっては出来ますので、エラーメールに反応して何か行うことは出来ます。 これは多少面倒ですが。 |
1
