勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

CentOS7.9にPostfixをインストールしてメール送信できるようセットアップする方法

   2024/01/19  VPS サーバー

本ブログのサーバをKAGOYAのVPSからWebARENA Indigoへ移行した際に、メールサーバも設置してみたものの正常に送信されなかった。そのまま放置していたものの今になって設定等を弄ってみると送信できたので覚えている範囲でセットアップ方法のメモ。尚、PHP等からの送信のみが目的で受信に関しては取り扱っていない。

 

CentOSのバージョン

7.9.2009

 

Postfixのインストール及びセットアップ

サーバにSSH接続し以下操作を行う。

#Postfixのインストール
yum -y install postfix

#Postfixのバージョン確認
postconf | grep mail_version

#以下バージョンが出力された
mail_version = 2.10.1

#設定ファイルのコピー作成
cp /etc/postfix/main.cf /etc/postfix/main.cf.org

#設定ファイルの編集
vi /etc/postfix/main.cf

設定ファイルは以下を追記もしくは書き換え(コメントアウトになっている場合はシャープを外す)。また、ドメイン部分は適宜変更する。尚、一番下のsmtp_tlsなんちゃらは追記しなくても送信できるが、送信時に暗号化されないためブラウザ版Gmailとかから見た際に警告マークみたいなのが表示される。

myhostname = test.com
mydomain = test.com
masquerade_domains = test.com
smtp_tls_CAfile = /etc/pki/tls/cert.pem

設定ファイルを上書き保存し、以下操作を行う。

#設定ファイルの文法チェック(エラーが無い場合は何も表示されない)
postfix check

#postfix再起動
systemctl restart postfix

 

SPFレコード設定

TXTレコードで以下を設定する。

v=spf1 +a +mx include:test.com ~all

SPFレコードが正常に設定されているかどうかはこちらのサイトで確認できる。設定から数時間後ぐらいにチェックすると良い。

 

メール送信テスト

以下プログラム等で送信テストを行う。

<?php
ini_set( 'display_errors', 1 );
mb_language('ja');
mb_internal_encoding('UTF-8');
$from = 'from@test.com';
$to = 'to@test.com';
if( mb_send_mail($to, 'subject', 'body', "From: {$from}\r\n", "-f{$from}") ){
//成功時処理
echo 1;
}else{
//失敗時処理
echo 0;
}

尚、送信の際はSSH接続し以下コマンドを打っておいてログが見れるようにしておくと良いかも。

tail -f /var/log/maillog

 

注意点

historyコマンドで過去の入力履歴を見たところPostfix導入時に以下コマンドが入力されていたため、telnet関連の設定等も必要なのかも。この辺はうろ覚え。

yum -y install telnet
telnet localhost 25

 - VPS サーバー

  関連記事

CentOS7系からAlmaLinux8系に移行(サーバも移行)した際に詰まった点と変更点

前日CentOS7系からAlmaLinux8系に移行した(サーバはどちらも同じV ...

WordPressでメモリを節約しつつ高速化する設定方法

メモリ1GのVPSを借りてWordpress以外にも、ちょいちょいものを置いてい ...

VPSで決めた時間に自動でreboot(再起動)させる方法

VPSを常時起動させてると、どうもapache(httpd)がメモリを離してくれ ...

KAGOYA(OpenVZ)のVPSの使用感について

KAGOYAのVPSを試しに使ってみたので使用感をメモ。使用したプランはOpen ...

AlmaLinux8.6にLAMP環境&WordPressを構築する方法

だいぶ前にCentOS6系から7系に移行したが、7系も2024/6/30にサポー ...