Vagrant+AlmaLinuxで構築した開発環境にPostfixをインストールする

Linux,技術AlmaLinux,Vagrant,VirtualBox,メール送信,開発環境構築

こんばんわ。

連休中は私の趣味で家電量販店ばかり巡っていた、どうもみけぽんです。

 

今となってはWEBサイトからメールを送信するのは当たり前となっているので、今回はPostfixをインストールしてメールを送信してみようと思います。

 

 

前回の記事

 

Postfixのインストール

Postfix及びプライベートネットワークから外部へメールするために必要なモジュールをインストールします。

$ dnf install -y postfix cyrus-sasl-md5 cyrus-sasl-plain 

 

インストール後は忘れずに有効化もしておきます。

$ systemctl enable postfix

 

Postfixの設定ファイルの編集

まずは設定ファイルのバックアップをしておきます。

 $ cp -p /etc/postfix/main.cf /etc/postfix/main.cf.backup 

 

そして修正します。

$ vi /etc/postfix/main.cf

inet_interfaces = localhost
myhostname = localhost.com
mydomain = localhost.com
mydestination = 

# 末尾に追記
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_sasl_security_options = noanonymous

ちなみにCeotOS8の本番サーバーでは追記部分はなくてもメール送信はできました。

 

sasl_passwdファイルの作成

/etc/postfixに移動してからsasl_passwdファイルをviコマンドで作成し、下記内容を追記してください。

[smtp.gmail.com]:587 Gmailアドレス:パスワード

これでGmailを使って外部へメール送信させる設定が整いました。

 

/etc/postfixにいる状態で下記コマンドを実行し、sasl_passwdを有効化してください。

$ postmap sasl_passwd

 

Postfixの再起動

再起動する前に文法チェックを行ってください。

エラーがなければ何も表示されません。

$ postfix check

 

問題なければ再起動します。

$ systemctl restart postfix

 

メールの送信

任意の場所にメール送信用のスクリプトを作成し、実行してください。

$ vi test.php
<?php
$to = "hogehoge@gmail.com";
$subject = "テストメール";
$message = "これはテストメールです";
echo mail($to, $subject, $message);

$php test.php

実行時にsasl_passwdで設定したGmailアカウントに「重大なセキュリティ通知」というタイトルのメールが来ますが、今回は[安全性の低いアプリの許可] をオンにしてください。

 

$toに設定したメールアドレスにメールが届けば成功です。

届かなかった場合は/var/log/maillogを確認してください。

 

まとめ

本番サーバーではGmailにリレーさせなくてもメール送信することが出来ました。

プライベートネットワークでは外向きにメール送信できないようで、それが分からず三日以上ハマりました😇