
Inspiron mini 9にインストールしたthunderbirdから送信したメールが相手に届かない場合がある。
送信自体は、エラーもなく正常に送信されているように見える。
送り先によって届くところと届かないところがあるみたいだ。
他のマシンにインストールしたthunderbirdから送ったメールはちゃんと届く。thunderbirdのSMTPの設定はまったく同じなのに何が違うんだろうか?
それぞれのプロトコルログを採って比べてみよう。
はて? メニューにプロトコルログを採る設定がない。ググッてみるとあった。
以下、備忘録
コマンドプロンプトを開き、NSPR_LOG_FILEとNSPR_LOG_MODULESの2つの変数をセットしてからthunderbirdを起動する。
NSPR_LOG_FILEは、保存するログファイルのパス
set NSPR_LOG_FILE=C:\thunderbird.log
NSPR_LOG_MODULESは、採取するプロトコルとログレベル(推測)を指定
set NSPR_LOG_MODULES=SMTP:5
複数のプロトコルを指定する場合は、 SMTP:5,POP3:5,IMAP:5 のように指定する。
セットした後で、thunderbirdを起動する。
C:[E:enter]
cd \Program Files\Mozilla Thunderbird[E:enter]
thunderbird[E:enter]
メールが届いているマシンとmini 9のログを比較してみたところ、IPアドレス等の他で異なるのはここだけだった。
mini 9の方では、次のようにlocalhostのIPアドレスを送信している。
SMTP Send: EHLO [127.0.0.1]
メールが届いているマシンの方では、DHCPで割り当てられた自分のIPアドレスを送信している。
他は、同等だった。この違いはどこからきてるのだろう?
追記
届かない相手先の代表例は、docomoの携帯電話であるが、迷惑メール対策で「他のアドレスになりすましたメールは 存在するドメインからのみ受信」という設定にしていると届かないが、「他のアドレスになりすましたメールは 拒否しない」に変更すると届くようになった。迷惑メール対策をしている人は多いので、存在しないドメインからのメールとみなされているらしい。
追記2
EHLOで返す文字列は、強制的に変更できる事がわかった。
オプション→詳細→一般の「設定エディタ」を開いて右クリック→新規作成→文字列で
mail.smtpserver.default.hello_argument
を入力して、これの値として、EHLOで返す文字列(IPアドレスやホスト名)をセットしてやると指定した文字列を送るようになる。N番目のSMTPの設定だけを変えたい場合は、
mail.smtpserver.smtpN.hello_argument
を新規作成すれば良い。
その端末のIPアドレスなりホスト名を返すのが望ましいとは思う。localhostのループバック用のIPアドレスを送るのも無意味な事だ。だからと言って固定のアドレスやホスト名を返すのもどうかとは思う。どっちもどっちだ。
EHLOで送る文字列を変更する事はできたが、 メールが届かない場合があるという現象は変わらなかった。
NTT docomoの携帯電話で、迷惑メール対策として「他のアドレスになりすましたメールは存在するドメインからのみ受信」という設定にしていると届かないようなのだ。・・・ん!
自分のメールアドレスにタイプミスがあって、存在しないドメイン名になっていた事に気がついた。[E:coldsweats01]
プロトコルログを比較したときにも気がつかなかった。(恥)
修正したらメールが届かないという問題は、解決した。
解決