Excelから送信したメールが、届かない場合の対策について。

メール送信は成功したのに、送ったメールが届かないことがあります。

一番大きな原因は、メールアドレスが間違っていることです。

Excelから BASP21 を使ってメールを送信する場合、メールアドレスが実在する(有効)かどうかまでは、判断できません。

メールは実際に送ってみないと、正しいメルアドなのか、わからないのです。

これは普通のメーラーでも同じです。

例えば、Outlook Express のようなメーラーで、メールを送信した場合、メールアドレスが間違っていても、とりあえず送信はできます。

しかし直ぐにメールサーバーから、以下のようなメールが届きます。

mail-239.gif

これはメール送信に失敗したという通知です。(件名 failure notice)

メールの本文には、英語でメッセージが書かれています。

簡単に直訳すると、
「残念ながら、あなたのメッセージを、メールアドレスに送ることができませんでした。」
「このエラーは、解決しませんでした。」
というような内容です。

他にもメールサーバーによっては、「User unknown」というメールを返してくるものもあります。

プログラムからメールを送信した場合もまったく同じです。

メールを届けることが出来なかった場合には、送信用のメールアドレスに、上記と同じようなメッセージが届いています。

メールを送れるかどうかの判断は、最終的にはメールサーバーに任せるしかないのです。

でも、できるだけメールが届くように、私たちがプログラミングで対応できることがあります。

(1)正規表現を使って、メールアドレスが適当なデータかチェックする。
(2)「failure notice」で戻ってきたメールアドレスは、修正するか削除する。
などの対策が考えられます。

これだけの工夫でも、メールが届かない確率をグッと減らすことができます。

(1)の正規表現を使ったメールアドレスのチェックは、簡単にできます。

(2)はメールの受信プログラムまで進むと、自動化できるようになります。

でもメールが一度送信できないだけで、修正したり、削除していいのか、という問題があります。例えば、たまたま相手のメールサーバーで、不具合が発生したのかもしれません。

そこで「連続して3回届かない場合は削除する」というような工夫が必要です。


【解説】
(1)携帯電話のメールアドレスについて
特に携帯電話のメールアドレスへ、メールを一括送信する時は、注意が必要です。キャリヤー側(携帯電話サービス事業者)で、ブロックされることが多いからです。

何通以上からブロックされるのかは、明確にされていませんが、有効で無いメールアドレスが何通か続くと、ブロックされます。

そして一度ブロックされると、それ以降は、正しいメールアドレスでも届かない場合があります。


(2)届かないメールアドレスの対策
一番簡単な対策は、送信用のメルアドを Outlook Express のような普通のメーラーに設定して、受信だけ行なってみることです。

同じメールアドレスで、件名が「failure notice」や「User unknown」などの返信メールが続くようなら、手動で修正したり、Excelのワークシートから削除するとよいでしょう。

この作業は、プログラムで受信が出来れば、自動化できます。

スポンサードリンク

スポンサードリンク






メール送信・受信プログラミング初心者入門 TOPへ