NetCommons2 メール送信時のサーバ設定について ~SPF、Postfix null client、envelope-from~ 株式会社オープンソース・ワークショップ 2016-04-29 【目次】 I. はじめに .................................................................. 2 1. この資料について....................................................... 2 2. 目的 .................................................................. 2 3. ライセンスなど......................................................... 2 4. 著者 .................................................................. 2 5. 対象バージョン......................................................... 2 6. 更新履歴 .............................................................. 2 II. 概要 ...................................................................... 3 1. この設定の想定環境..................................................... 3 2. 画像アップロード時の詳細設定について ................................... 3 3. 仮想サーバの Postfix の設定について ..................................... 4 4. NetCommons2 修正 ....................................................... 5 5. DNS 設定 ............................................................... 6 III. お問合せ先 ................................................................ 7 1 I. はじめに 1. この資料について 当資料は NetCommons2 からメールを送信する際、SPF チェックなどのエラーを防止するた めの設定方法を記した資料です。 2. 目的 この資料は、以下の目的のために記述致します。 (1) NetCommons2 でメールを送信する際の参考資料として 3. ライセンスなど ※ 当資料中で記載する「NetCommons」は[大学共同利用機関]情報・システム研究機構の登 録商標です。 4. 著者 株式会社 オープンソース・ワークショップ 永原 篤( [email protected] ) 5. 対象バージョン NetCommons2.4.2.1 6. 更新履歴 2016-04-29:初版 2 II. 概要 1. この設定の想定環境 以下、()の FQDN などは例 NetCommons は VPS やクラウドの仮想サーバで運用 (OSWS.jp or www.OSWS.jp) SMTP は仮想サーバの MTA(ここでは Postfix) = localhost を使用したい。 DNS は別にある。(dns.OSWS.jp) メールサーバも別にある。(mail.OSWS.jp) 2. 画像アップロード時の詳細設定について DNS (OSWS.jp) 仮想サーバ Web&Postfix (OSWS.jp) postfix 設定 NetCommons 修正 MX レコード設定 SPF 設定 逆引きレコード メールサーバ (mail.OSWS.jp) 3 3. 仮想サーバの Postfix の設定について 仮想サーバの Postfix については、送信専用のメールサーバとして設定する必要がありま す。 送信専用のメールサーバのことを「Null Client」と呼びますが、ここでは、Postfix を「Null Client」として設定します。 なぜ送信「専用」で設定する必要があるかを説明します。 仮に Web サイトの管理者メールアドレスが [email protected] だったとします。 この時、NetCommons2 から localhost の Postfix へメールを送ると、Postfix はそのメール が自ドメインの場合、local のメールボックスへ配送しようとします。 ところが、メールサーバ自体は別のサーバで運用しているため、エラーになる、もしくは local のメールボックスへ配信してしまいます。 これでは、ただしくメールが届かないため、送信専用にする必要があります。 以下、main.cf で変更が必要なパラメータです。 myhostname = www.OSWS.jp mydomain = $myhostname ※ もしくは OSWS.jp myorigin = $mydomain inet_interfaces = localhost # inet_protocols は使用している環境に合わせて設定 inet_protocols = ipv4 local_transport = error:local delivery is disabled # mydestination は設定しないことで、自ドメインとして受け取るメールがなくなる。 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks_style = host smtpd_banner = $myhostname ESMTP unknown 4 4. NetCommons2 修正 NetCommons2 はメール送信時に envelope-from を設定していません。 envelope-from がないことで、受け取り側の MTA でエラーになることもあるので、設定し ます。 webapp/components/mail/Main.class.php の 381 行目 以下の $this->_mailer->Sender = $this->fromEmail; の行を追加 $this->_mailer->ClearAllRecipients(); $this->_mailer->AddAddress($email); if (!empty($this->fromEmail)) { $this->_mailer->From = $this->fromEmail; $this->_mailer->Sender = $this->fromEmail; } $this->_mailer->ClearCustomHeaders(); foreach ($this->headers as $header) { $this->_mailer->AddCustomHeader($header); } if (!$this->_mailer->Send()) { $this->_log->warn($email. "宛にメールを送信できませんでした/". $this->_mailer->ErrorInfo, "Mailer#send"); } else { $this->_log->trace($email. "宛にメールを送信しました", "Mailer#send"); } 5 5. DNS 設定 MX レコード 使用しているメールサーバへ誘導するための MX レコードを設定すること。 SPF 設定 以下に例を記載するが、SPF レコードの書き方は自分の環境に合わせた記載内容を調査し てください。 "v=spf1 ip4:xxx.xxx.xxx.xxx a:www.OSWS.jp ~all" 逆引きレコード サーバ会社の DNS への設定になるかもしれませんが、逆引きレコードも設定します。 これは、SPF チェックに有効だと考えられるためです。 さくらインターネットの VPS やクラウドでは、コントロールパネルから設定できます。 6 III. お問合せ先 株式会社オープンソース・ワークショップ 電話番号:03-5534-8088 メ ー ル:[email protected] W e b:https://opensource-workshop.jp 7
© Copyright 2024 Paperzz