現在Youtubeに注力してますので是非チャンネル登録お願いします!

胡田昌彦のコンピューター系チャンネル

この記事は約3分で読めます。

新たな問題

以前、YahooBBのOP25に引っかかって、postfixでSMTP_AUTHを構成し、YahooBBのサブミッションポートにメールをリレーする設定を行いました。

とりあえずこれで問題なく使っていたのですが、gmailで受信しているメールにいくつか「Undelivered Mail Returned to Sender 」が混じっていることに気がつきました。どうやらこれは以前使っていたebi@ebi.dyndns.bizというメールに関して問題が発生していたようです。

  • 以前のメールフロー
    • 外部→ebi@ebi.dyndns.biz→(転送)→ebibibi@gmail.com
  • エラーになってしまうメールフロー
    • 外部→ebi@ebi.dyndns.biz→(転送)→YahooBBのリレーサーバー(ここで差出人が登録されていない、ということでリレー拒否されてしまう)

エラーメッセージは以下のような感じです。

This is the mail system at host ebi.dyndns.biz.

エラーメッセージが結果的に届いているところが面白いところではあります。サブミッションポートの制限はNDRには適用されない模様です。これはNDRにたいしてさらにNDRを生成して、NDRがループしてしまうことを防ぐための仕様だと思われます。(と、いうことはこれを使って色々と悪いことができる気もしますが…)

対応策

どう対処しようか結構迷いました。そもそももう使っていないアドレスなので無視したり、移動した旨を伝える程度でも良かったのですが、自分が把握していない場所に以前のメールアドレスが残ってしまっていて、それがいつまでたっても解消できなくなってしまったり、万が一重要なメールが来ていたときに気がつけないのは困ります。

単純にリレーを設定してもOP25の制限ではじかれてしまいます。

悩んだ結果、結局以下のフローにしました。

  • 外部→ebi@ebi.dyndns.biz→あて先をYahooBBの自分のアドレスに書き換え→YahooBBのメールサーバー(25番)にリレー→YahooBBのメールボックスに着信→GmailのPOP3設定にてGmailに取り込み

なんだかまどろっこしいですが、一応これでうまく動いたようです。難点を挙げるとすればGmailでのPOP3のダウンロードは結構間隔が長いので、メールをすぐに確認できないところでしょうか。でも私の使い方の場合には問題いので良しとします。

postfixの設定方法

具体的なpostfixの設定は以下のようにしました。

main.cfに追記

canonical_maps = hash:/etc/postfix/canonical2
transport_maps = hash:/etc/postfix/transport

canonicalファイルを記述〜DB化(アドレスの書き換え)

ebi     <私のメールアドレス>@yahoo.co.jp
postmap /etc/postfix/canonical2

なぜcanonical2というファイル名になっているかというと、なぜかcanonicalという名前にしておくと以下のエラーがでてpostfixがファイルを認識できなかったからです。原因はまったく不明。不思議です。バグっぽいかもしれません。

 fatal: open database /etc/postxfix/canonical.db: No such file or directory

なんだかだんだんpostfixがわかった気になってきました!(^^

コメント