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サーバ上からのテストメール送信コマンドはこちら

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *