WEBサービス構築の際のメール送信サーバー設定とスパムメールにならない対応方法

2019年6月14日

テクノロジー

インターネットサービスを構築する際に、ユーザー登録を行う場合、フェイスブック、ツィッター、GmailなどのOpenIDサービスを利用するサービスが増えていますが、メールを使ってのログインを行うケースが未だに標準といっても過言ではありません。 OpenIDは、一般的に使っているであろうSNS系サービスが主流ですが、100%ユーザーがそのサービスを使っている可能性が無いため、どうしても直接ログインできる手法が必要になってしまいます。 メールアドレスであれば、捨て垢も含めてその本人の確認も取れて手法として間違ってはいませんが、利用ユーザーのパスワード管理が煩雑になるというデメリットは置いておくことにする。

Linuxサーバーにおけるpostfix設定

sendmailと言えば「postfix」を利用するのが今どきのMTAの主流です。 なので、今回はpostfixの簡単設定を行いたいと思います。

postfixのインストール

Linuxサーバーでは以下のコマンドで速攻インストールが可能。 # Ubuntu系 $ apt-get install postfix # CentOS系 $ yum install postfix

MTA切り替え

デフォルトではsendmailになっているのを以下のように切り替え作業を行ってください。 $ alternatives --config mta 選択 コマンド ----------------------------------------------- 1 /usr/sbin/sendmail.postfix *+ 2 /usr/sbin/sendmail.sendmail 上記のようになっている場合は、[1+enter」でpostfixをsendmailとしてMTAを切り替えられます。 $ alternatives --config mta 選択 コマンド ----------------------------------------------- + 1 /usr/sbin/sendmail.postfix * 2 /usr/sbin/sendmail.sendmail 上記のようになれば完了です。

main.cfの書き換え

/etc/postfix/main.cf がpostfixの基本的な設定ファイルになるので、このファイルを以下のようにすることで、メール送信が可能になります。 # メールサーバーのホスト名 myhostname = mail.example.com # ドメイン名 mydomain = example.com # 差出人のメールアドレスに使用されるドメイン名 myorigin = $mydomain # メール受信を許可するアドレス(ローカルから外部への配送のみを許可) inet_interfaces = 127.0.0.1 # IPv4 のみを有効にする inet_protocols = ipv4 # メールサーバー自身に配送されたとみなすドメインのリスト mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # メールのリレー(転送)を許可するネットワーク(ローカルからのメールのみ転送を許可) mynetworks = 127.0.0.0/8 この設定で、ローカルサーバーから外部に向けたメール送信が可能になります。 具体的にはphpのmail関数が機能するようになります。

DNSの設定

最後にDNSの登録を行ってあげることで、メールサーバーとしては成立することになります。 mxレコードに、"mail.example.com" Aレコードに、"mail.example.com *IP-address*"

スパムメールフォルダに入らなくするために・・・

最後に余談ですが、上記のままメールを送信すると、gmailではスパムメールに入る確率が高いです。 ここでは、phpのmb_send_mailを使った場合に、header情報に"REPLY-TO:"を入れることで、スパムメールフォルダに入る状況を回避することができます。 ただし、スパムメールはもう少し奥の深い仕様があるので、それでもスパム扱いされるという方は以下のページを参照してみてください。 https://blog.formzu.com/reason_for_being_treated_as_spam

セキュアなメール送信を心がける

今回はphpでメール送信のみをおこなためのsendmail(postfix)設定を行いましたが、外部からの踏み台にされないようにしたり、無意味なスパムメール送信を行わないようにちゃんとセキュリティだけは抑えて置かなければいけません。 mailサーバーの構築は古くからのsmtpの仕様を学習しないといけないので、オライリーのsendmail書籍をかなり分厚いですが、読んで学習してみてはいかがでしょうか? きっとメール文化はまだまだ廃れませんよ。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。