ぐる式 (貳) より引っ越し作業中.未完.

2007年3月12日月曜日

Outbound Port 25 Blocking と Message Submission Port 対策

キューを消しちゃったのでいつ頃から発症していたのか判らんのだが, WordPress からのメール送信ができなくなっていたもよう. /var/log/mail.logconnect to メール・サーバ[xxx.xxx.xxx.xxx]: Operation timed out (port 25) が残ってたら,おそらくコレが原因. Postfix の設定を修正するだけで直る (と思う).

  1. /etc/postfix/master.cf を修正し,メール送信に Submission Port 587 を使う.

    submission inet n - n - - smtpd -o smtpd_etrn_restrictions=reject

  2. メル鯖は立ててないのでプロバイダの鯖を使っている.ここは Submission Port を使うときは要 SMTP AUTH 認証なので, /etc/postfix/main.cf に以下を追加し,送信時に smtp_sasl_auth を行う.これで送信可能になる.

    ...relayhost = プロバイダの smtp 鯖...smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:パスワード・マップ・ファイルのフル・パスsmtp_sasl_security_options = noanonymous

    パスワード・マップ・ファイルの中身は「メール・サーバ ユーザID:パスワード」となる.ハッシュ・ファイルは /usr/sbin/postmap で作成.

これ以降はやらなくても動くかも知れんが.

  1. Contact Form ][ を 2.1 ready な v2.0.13 へアップデート. (Plugins/Plugin Compatibility/2.1 « WordPress Codex)
  2. wp-contact-form/wp-contactform.php では相変わらず mail() を使っているので wp_mail() に差し替え.二箇所.
  3. 日本語文字化けを回避するために Nippon で定義されている wp_mail() を使いたいので, wp-includes/pluggable.php で定義してある wp_mail をコメント・アウト.

順序としては WordPress 関連〜 Postfix 関連でやったが,とりあえずコレで送信可能になった. /var/log/mail.logto=<送信先アドレス>, relay=パスワード・マップ・ファイルで指定したメール・サーバ[その ip アドレス], delay=0, status=sent (xxx.xxx.xxx.xxx [0-9A-z]* Message accepted for delivery) とあれば,配信準備完了.

0 件のコメント:

コメントを投稿