PostfixにSTARTTLSの外部SMTP送信サーバ(Office365)設定を追加する
色々な制約条件があり、Postfixが自分でメールを送るのではなく、外部のSMTPサーバを利用(リレー)して送信する必要に迫られた。
SMTP情報の確認
ホスト名:ポート
ユーザー名、パスワード(SMTP-Auth)
の各種情報を取得しておく。
広告
Postfixの設定(/etc/postfix/main.cf)
ドメイン情報を追加(変更)する。
#mydomain = domain.tld
mydomain = dacelo.space |
同ファイル末尾に、メールのリレーにかかわる設定とSMTP認証設定を追記する。
#added by dacelo 2022-05-27 transport_maps = hash:/etc/postfix/transport # SMTP認証を有効とし、relay_password にある認証情報を参照するよう設定する smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/relay_password smtp_sasl_security_options = noanonymous #STARTTLS設定 smtp_tls_security_level = may |
関連ファイル更新・作成
SMTPパスワードの参照用ファイルを作成する。
[dacelo@space ~]$ sudo vim /etc/postfix/relay_password
smtp.office365.com:587 hogehoge@office365.com:~password~ |
transport設定ファイルに、リレーサーバの記述を追記する。
[dacelo@space ~]$ sudo vim /etc/postfix/transport
# AUTHOR(S) # Wietse Venema # IBM T.J. Watson Research # P.O. Box 704 # Yorktown Heights, NY 10598, USA # # TRANSPORT(5) * smtp:smtp.office365.com:587 |
postmapしてdb更新する。
[dacelo@space ~]$ sudo postmap /etc/postfix/relay_password [dacelo@space ~]$ sudo postmap /etc/postfix/transport
cyrus-saslのインストール
さあ、postfixを再起動してメール送信テスト…。してみたら、こんなエラーが出ている。価値ある仕組みが見つからない、とか。どうやらSasl関連のプラグインが足りないようだ。
May 27 13:46:01 space postfix/smtp[51157]: warning: SASL authentication failure: No worthy mechs found
yumでインストールする。
[dacelo@space ~]$ sudo yum install cyrus-sasl-plain cyrus-sasl-md5 読み込んだプラグイン:fastestmirror, priorities, remove-with-leaves, show-leaves Determining fastest mirrors epel/x86_64/metalink | 9.8 kB 00:00:00 * base: ftp-srv2.kddilabs.jp * epel: ftp.riken.jp * extras: ftp-srv2.kddilabs.jp * remi-safe: ftp.riken.jp * updates: ftp-srv2.kddilabs.jp base | 3.6 kB 00:00:00 docker-ce-stable | 3.5 kB 00:00:00 epel | 4.7 kB 00:00:00 extras | 2.9 kB 00:00:00 mysql-connectors-community | 2.6 kB 00:00:00 mysql-tools-community | 2.6 kB 00:00:00 mysql57-community | 2.6 kB 00:00:00 remi-safe | 3.0 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/10): epel/x86_64/group_gz | 96 kB 00:00:00 (2/10): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (3/10): docker-ce-stable/x86_64/primary_db | 78 kB 00:00:00 (4/10): epel/x86_64/primary_db | 7.0 MB 00:00:00 (5/10): mysql-tools-community/x86_64/primary_db | 86 kB 00:00:00 (6/10): extras/7/x86_64/primary_db | 247 kB 00:00:00 (7/10): mysql57-community/x86_64/primary_db | 306 kB 00:00:00 (8/10): mysql-connectors-community/x86_64/primary_db | 87 kB 00:00:00 (9/10): updates/7/x86_64/primary_db | 16 MB 00:00:00 (10/10): remi-safe/primary_db | 2.2 MB 00:00:04 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ cyrus-sasl-md5.x86_64 0:2.1.26-24.el7_9 を インストール --> 依存性の処理をしています: cyrus-sasl-lib(x86-64) = 2.1.26-24.el7_9 のパッケージ: cyrus-sasl-md5-2.1.26-24.el7_9.x86_64 ---> パッケージ cyrus-sasl-plain.x86_64 0:2.1.26-24.el7_9 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ cyrus-sasl-lib.x86_64 0:2.1.26-23.el7 を 更新 --> 依存性の処理をしています: cyrus-sasl-lib(x86-64) = 2.1.26-23.el7 のパッケージ: cyrus-sasl-devel-2.1.26-23.el7.x86_64 --> 依存性の処理をしています: cyrus-sasl-lib(x86-64) = 2.1.26-23.el7 のパッケージ: cyrus-sasl-2.1.26-23.el7.x86_64 ---> パッケージ cyrus-sasl-lib.x86_64 0:2.1.26-24.el7_9 を アップデート --> トランザクションの確認を実行しています。 ---> パッケージ cyrus-sasl.x86_64 0:2.1.26-23.el7 を 更新 ---> パッケージ cyrus-sasl.x86_64 0:2.1.26-24.el7_9 を アップデート ---> パッケージ cyrus-sasl-devel.x86_64 0:2.1.26-23.el7 を 更新 ---> パッケージ cyrus-sasl-devel.x86_64 0:2.1.26-24.el7_9 を アップデート --> 依存性解決を終了しました。 依存性を解決しました ================================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================================================= インストール中: cyrus-sasl-md5 x86_64 2.1.26-24.el7_9 updates 57 k cyrus-sasl-plain x86_64 2.1.26-24.el7_9 updates 39 k 依存性関連での更新をします: cyrus-sasl x86_64 2.1.26-24.el7_9 updates 88 k cyrus-sasl-devel x86_64 2.1.26-24.el7_9 updates 310 k cyrus-sasl-lib x86_64 2.1.26-24.el7_9 updates 156 k トランザクションの要約 ================================================================================================================= インストール 2 パッケージ 更新 ( 3 個の依存関係のパッケージ) 総ダウンロード容量: 650 k Is this ok [y/d/N]: y Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. (1/5): cyrus-sasl-2.1.26-24.el7_9.x86_64.rpm | 88 kB 00:00:00 (2/5): cyrus-sasl-lib-2.1.26-24.el7_9.x86_64.rpm | 156 kB 00:00:00 (3/5): cyrus-sasl-devel-2.1.26-24.el7_9.x86_64.rpm | 310 kB 00:00:00 (4/5): cyrus-sasl-md5-2.1.26-24.el7_9.x86_64.rpm | 57 kB 00:00:00 (5/5): cyrus-sasl-plain-2.1.26-24.el7_9.x86_64.rpm | 39 kB 00:00:00 ----------------------------------------------------------------------------------------------------------------- 合計 3.8 MB/s | 650 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 更新します : cyrus-sasl-lib-2.1.26-24.el7_9.x86_64 1/8 更新します : cyrus-sasl-2.1.26-24.el7_9.x86_64 2/8 更新します : cyrus-sasl-devel-2.1.26-24.el7_9.x86_64 3/8 インストール中 : cyrus-sasl-md5-2.1.26-24.el7_9.x86_64 4/8 インストール中 : cyrus-sasl-plain-2.1.26-24.el7_9.x86_64 5/8 整理中 : cyrus-sasl-devel-2.1.26-23.el7.x86_64 6/8 整理中 : cyrus-sasl-2.1.26-23.el7.x86_64 7/8 整理中 : cyrus-sasl-lib-2.1.26-23.el7.x86_64 8/8 検証中 : cyrus-sasl-devel-2.1.26-24.el7_9.x86_64 1/8 検証中 : cyrus-sasl-md5-2.1.26-24.el7_9.x86_64 2/8 検証中 : cyrus-sasl-2.1.26-24.el7_9.x86_64 3/8 検証中 : cyrus-sasl-plain-2.1.26-24.el7_9.x86_64 4/8 検証中 : cyrus-sasl-lib-2.1.26-24.el7_9.x86_64 5/8 検証中 : cyrus-sasl-2.1.26-23.el7.x86_64 6/8 検証中 : cyrus-sasl-lib-2.1.26-23.el7.x86_64 7/8 検証中 : cyrus-sasl-devel-2.1.26-23.el7.x86_64 8/8 インストール: cyrus-sasl-md5.x86_64 0:2.1.26-24.el7_9 cyrus-sasl-plain.x86_64 0:2.1.26-24.el7_9 依存性を更新しました: cyrus-sasl.x86_64 0:2.1.26-24.el7_9 cyrus-sasl-devel.x86_64 0:2.1.26-24.el7_9 cyrus-sasl-lib.x86_64 0:2.1.26-24.el7_9 完了しました! New leaves: cyrus-sasl-md5.x86_64 cyrus-sasl-plain.x86_64
これでOK。
さあ、もう一度メール送信テストをしてみると…
May 27 13:48:26 space postfix/smtp[51524]: C9B8B1108F53: to=, relay=smtp.office365.com[52.98.63.66]:587, delay=395, delays=393/0.02/0.82/0.36, dsn=2.0.0, status=sent (250 2.0.0 OK <6290568f.GA/seNjtLO5hj/pd%no-reply@office365.com> [Hostname=OSAPR01MB3300.jpnprd01.prod.outlook.com])
無事送信できました。Linuxサーバ上からのテストメール送信コマンドはこちら。