はじめに
久しぶりにハマりました。docker mailserverでメールサーバを構築するで、メールサーバを構築したは良いものの、外部にメールが送信できませんでした。一応、解決したので備忘録として残しておきます。
環境と症状
環境
- aws上でdocker-composeを使用して、メールサーバを構築
- 独自ドメインは取得済み
症状
- 外部からのメール受信はできる
- メールを送信しても、届かない
原因
結論を言うと、プロバイダーが原因でした。プロバイダー側が迷惑メール対策として、指定したメールサーバ以外からのメール送信を禁止している様でした。なので、送信サーバにプロバイダーが指定したメールサーバを指定すると、送信できる様になりました。この仕組みのことをOutbound Port25 Blockingと言うそうです(知りませんでした)。一応、送信サーバを変えたからと言って、送信アドレスが変わるわけではありません。
設定方法
例えば、so-netの場合だと下記の様に設定する必要があります。
設定内容
メールアドレス : sample_mail@domain.local
パスワード : mailpass
プロトコル : IMAP
受信メール
サーバ名 : サーバのIPアドレス、または独自ドメイン名
ポート番号 : 143
暗号化方法 : なし
認証方式 : 通常のパスワード認証
送信メール
サーバ名 : サーバのIPアドレス、または独自ドメイン名
サーバ名 : mail.so-net.ne.jp
ポート番号 : 587
暗号化方法 : なし
認証方式 : 通常のパスワード認証
SMTP 認証
ユーザー名:メールアドレス
パスワード:メールアドレスパスワード
参照
他プロバイダのメールの送信ができない(So-net の接続を利用した場合)を参照してください。
その他のプロバイダ
その他のプロバイダについても同様に設定すればOKです。自宅からメールの送信ができない場合を参照してください。