回答編集履歴

1 書式訂正

rik

rik score 1104

2015/08/14 01:35  投稿

メールを送信する際にリターン先メールアドレスも設定しておきます。
届いたリターンメールをCRON等で定期チェックしてメールアドレスを抽出し、3回送れなかったらそれ以降は送らないなどの処置とします。
リターンメールを返すかどうかは相手のサーバー次第ですのであて先不明(ドメインは有るがメールアドレスが無い場合など)の場合は何も返ってこない場合が多いです。と言うのは、リターンメールによるサーバーの負荷やトラフィック増大を防ぐ理由によるものです。また、リターンメールの書式は相手サーバーの自由ですのでメールアドレス自動抽出プログラムは高い頻度で見直す必要が有るかも知れません。
そもそも相手先が存在しない場合(ドメインが無いなど)は送信先が存在しないのでリターンメールが返ってくることは有りません。(サーバーによっては送信元サーバーが送信者に何らかのメッセージを返すかもしれません)。送信元サーバーでメールキューに保留となり、何回かの送信リトライ後の数日後にはキューは消去されますがこれもチェックする必要があるでしょう。メールキューの確認は通常ルート権限が必要です。
リターンメールには様々なエラーコードが付加されてきます。これもチェックして適切な振り分けを行った方がいいでしょう。
不完全なまま運用を開始するとあなたの収容されているサーバーがスパムメール送信元と同じ扱いになってしまう恐れがあり、周囲のサーバーも巻き込んでブロックリスト(ブラックリスト)に登録されてしまい、あなたのサーバーからのメールは相手サーバーが拒否するようになってしまうかもしれません。
https://ja.wikipedia.org/wiki/DNSBL
例えば https://www.spamhaus.org/ SPAMHAUSにブラックリストとしてあなたのサーバー(IPアドレス)が登録されてしまった場合で、受信元がスパムメール防止策の一つとしてSPAMHAUSを参照していた場合、メールは受け取り拒否されてしまいます。この場合は、SPAMHAUSへ登録解除申請を行います。通常数日後には解除されます。SPAMHAUS以外にも同様なサービスはすぐに100団体以上見つかります。例えばこちらで自サーバーのIPアドレスを入れて、ブラックリスト登録されていないか一括チェックできます。http://whatismyipaddress.com/blacklist-check
例えば SPAMHAUS(https://www.spamhaus.org/)にブラックリストとしてあなたのサーバー(IPアドレス)が登録されてしまった場合で、受信元がスパムメール防止策の一つとしてSPAMHAUSを参照していた場合、メールは受け取り拒否されてしまいます。この場合は、SPAMHAUSへ登録解除申請を行います。通常数日後には解除されます。SPAMHAUS以外にも同様なサービスはすぐに100団体以上見つかります。例えばこちらで自サーバーのIPアドレスを入れて、ブラックリスト登録されていないか一括チェックできます。http://whatismyipaddress.com/blacklist-check
この様なサービスは色々あり、「blacklist check」で検索するといくつか見つかります。
つまり、エラーコードを見て受け取り拒否されているか否か、理由も確認する必要があります。
と、実装する機能が多岐にわたります。
よって、送信先が少なければ問題は起きにくいでしょうけど、十分注意いただくことをお願いしたいです。
私もこれら問題を全て経験してきました。結局メール送信ASPを使う方がコストが安いことに気づき、今現在はメール一斉送信の運用は有りませんが、その時が来たら外部サービスを使用するつもりです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る