AWSで25ポート利用制限でメール送信不可?【Postfixでの解決方法】

AWSで25ポート利用制限でメール送信不可?【Postfixでの解決方法】プログラミング
AWSで25ポート利用制限でメール送信不可?【Postfixでの解決方法】

AWSでシステム開発を行っていると『AWSからメールが送信できない』事ってあると思います。

今回はそんな場合に『Postfix』での解決方法をお伝えしたいと思います。

なぜメールが送信できないのか?というとAWSではデフォルトで25ポートに対し制限をかけている為になります。

このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。

もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!

AWSではデフォルトで25ポート利用制限をかけています

AWSではデフォルトで25ポートに対し利用制限をかけています。

これを知らないと解決までには時間を要しそうですよね。

スパムメール送信対策としてAWSから大量のスパムメールを送信させない為の制限なのでしょうがないと思います。

【Postfix】AWSからメールを送信する解決方法

ではPostfixでのAWSからメールを送信する解決方法を見ていきましょう。

Postfixのtransportで配送経路を指定する

Postfixのtransportで配送経路を指定する方法ですが、以下のような対応となります。

vi + /etc/postfix/transport

==========
* smtp:[配送先メールサーバーのIP]:[配送先メールサーバーのポート]
==========

postmap /etc/postfix/transport

vi + /etc/postfix/main.cf

==========
transport_maps = hash:/etc/postfix/transport
==========

/etc/init.d/postfix reload

transportファイルにメール配送先のメールサーバーを指定する方法ですね。

別途配信専用のメールサーバーが必要ですが、システム開発(プログラマー)の上ではぶっちゃけこれが一番楽かなと思います。様々な開発業務にも使えますしね。

ただし配信専用のメールサーバー側のセキュリティはしっかりしておきましょう。(オープンリレーになっていないか等)

 

ちなみにtransportファイルを以下のように記述すると、特定の宛先のみ配送経路を指定できます。

[特定の宛先] smtp:[配送先メールサーバーのIP]:[配送先メールサーバーのポート]

Postfix以外の解決方法

Postfix以外での解決方法ですが、AWSに利用解除を行う申請もできます。

EC2 インスタンスからポート 25 の制限を削除する
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたは AWS Lambda 関数から、ポート 25 経由で E メールを送信できません。

ただしDNS設定等、いくつか対応しないといけません。

これらの対応が"可"でしたら、AWSへ利用解除の申請を行うのもありかなと思います。

まとめ

この記事のおさらい
  • AWSではデフォルトで25ポートに利用制限がかかっている
  • Postfixのtransportで配送経路指定で解決可能
  • AWSへ25ポート利用制限解除の申請も可

いかがだったでしょうか。

プログラミングだけではなく、インフラ周りも見ていくと様々な問題に遭遇します。

これらも1つ1つ解決できていけば、自らのスキルも上がると思いますので、この記事が少しでも参考になればと思っています。