More from: Postfix

なんとかなった・・・かな?

Gmail宛にメールが送れなくなっていた件はサーバーを弄ってDKIM対応にしたところなんとか解決した・・・と思われる。
設定作業自体は難しいものではないんだけど、なにせ初めてだったので設定ファイルの弄り方が良く判らず、いろんなサイトを参考にしながら作業した。
途中で参考にしたサイトの設定ファイルの内容が正しく無かったり、他人がやってくれた部分に修正ミスがあったりで手間取りはしたが、なんとかGmail側に弾かれずにメールが届くようになったと思われる。
少なくとも自分の持っているGmailのアドレス宛に送ったメールのヘッダーを見る限りSPF認証もDKIMも”PASS”となっているので大丈夫かな。
一番困っていたユーザーさんも無事にメールを送ることが出来た(maillogでもstatusが”sent”になった)ので、これで安心して明日は休めそうだ(汗)。

←クリックしてくれると嬉しいです。

原因判明

昨日の記事に書いたpostfixでの配送が完了せず/var/spool/mailの下に配信されてしまった原因が判明した。
あらためてログを見直すとpop3の箇所に
”failed: No space left on device”
の文字列がorz。
つまり配信先ユーザーのhomeディレクトリに空きが無くて配信できずに止まってしまったわけだ。
その後に別の作業の結果ディスクに空きが出来たのでそれ以降のメールは問題無く配信されていたということらしい。
恒常的にメールの配信が漏れるわけでは無いということが判明したのは良かったが、ディスクスペースが足りないのはどうやって回避しようかな?(汗)

←クリックしてくれると嬉しいです。

メールの配送漏れ?

ユーザーから昨日届くはずのメールが届いていないとの連絡があった。
なんでも特定の時間帯のメールが少なくて、ちょうどその時間帯に送られたメールがあるけどPCで受信できないとのこと。
”そんな筈は・・・”と思ってサーバーのログを見ると届いていない筈のメール(送信元のアドレス等で判断)は配信されたことになっている。
/var/spool/mail下にあるスプールを見てもちゃんと入っている(後で気付いたがこの時点で勘違いしていた)。
そこで自分のPCで同じアカウントを設定して受信させてみると受信できない(ユーザー側は一定期間サーバーに残す設定にしてあるので私のところでも受信できる筈)。
スプールにあるのに受信できない原因を探している途中で気付いたが、このサーバーはpostfixでmaildir形式で構築してあり、先のスプールファイルには配信されずユーザー毎のディレクトリ(~/Maildir下)に配信される筈だった(汗)。
とにかく受信できないメールをなんとか受信出来るようにするのが先決なので色々調べてformailコマンドで配信することにして実行したところ、今度は
: mail forwarding loop for hoge@hogehoge.dom
というエラーメールがrootに送られてくるだけで配送されない。
ループになるような原因としてはaliases以外に考えられなかったので/etc/alisesファイルを何度も修正し、最後には転送設定を削除までしたが結果は変化しないorz。
となると転送設定の問題では無いだろうということでエラーメッセージでググるとヒントが見つかった。
それは送られてきたメールヘッダーの
Delivered-To:
に受信者と同じメールアドレスの記述があるとMTA(postfix)がメールループだと判断してしまうということらしい。
なぜDelivered-To:に同じアドレスが入っているかを調べる時間が勿体ないので、とにかくスプールファイルを直接(もちろんバックアップを取ったうえで)編集し、Delivered-To:に書かれているアドレスを若干変更して保存。
そうした後にformailコマンド
# formail -s sendmail -v -t -oiee < ./hoge を実行したところ無事にmboxに配信された。 あとは特定の時間帯にだけこの現象が起きた原因を探らなければ(汗)。

←クリックしてくれると嬉しいです。

postfixのリレー設定(メモ)

別部署で運用管理しているメールサーバーについての問い合わせがあったのでメモ。

そのメールサーバーを使ってプログラムでメールを送信すると一部のアドレスに届かないとのことで管理者から相談を受けた。
#自分で管理しているんだから自分で解決するように言いたかったけどね(汗)。
送信時のログを見ると線だって運用を停止したsmtpサーバーに接続しようとしてコネクションタイムアウトを起こしている(ここまでは管理者が自分で辿りついた)。
最初は名前解決に問題があるのかと思って、nslookupでset type = mxでmxレコードのIPアドレスを引いてみたら正しいIPアドレスが引けたので、DNS絡みの問題では無いことが判明。
そうなるとMTAとして使っているpostfixの設定の問題と思われ、もしかしたらリレーサーバーの設定かも?ということになった。
/etc/postfix/transportファイルを見ると、特定のドメインに対してのみ固定のsmtpサーバーに接続するように設定されていて、それがまさに運用を停止したサーバーだった。
なので、その部分をコメントアウトして保存してから
#postmap hash:/etc/postfix/transport
でデータベースを更新したらきちんと送信されるようになった。

忘れたら困るのでここにメモしておこう。

←クリックしてくれると嬉しいです。

メールを送ったけど届かない?

遠隔地の現場から別の現場宛に送ったメールが届いていないと連絡が来た。
調べてみるとPCからは問題無く送信されているのだけど、受信側のサーバーには届いた形跡が無い。
SPAM対策でDROPしたかと思ったがログを見てもDROPした形跡も無い。
いろいろ考えたが私の触れる範囲には問題が見当たらないので送信サーバーの管理担当者にMTA(Postfix)のログを送って貰って調べてみた。
そうしたら送信サーバーではPCからのリクエストを受け付けているが、受信側サーバーに送れないで止まっていることが判明。
具体的には
:25: Connection timed out
のエラーが出ていたので、送信側か受信側のどちらかが原因でconnection出来ないようだ。
この二つのサーバーは同一ネットワーク上にあるので、プロバイダのポート制限は受けないんだけど、何らかの原因で25番ポートでの接続が出来ないものと思われる。
残念ながら私はどちらのサーバーも触れないので、これ以上は担当者に任せるしか無いなぁ(汗)。

←クリックしてくれると嬉しいです。