NetCommons2 メール送信時のサーバ設定について

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