勉強したことのメモ

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 サーバー

  関連記事

VPSでWebARENAのIndigoが安い

サーバの勉強や開発環境の為にVPSをレンタルすることが多い。当ブログのように常時 ...

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

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

VPSのCentOSにプロキシサーバーを立てる方法

借りているVPSにプロキシサーバーを立てたかった。環境と設置方法等を以下にメモ。 ...

GMOのVPSでメモリ1GBのプランが出てた

GMOのVPSで今まで最小構成がメモリ2GBだったのが、新しく1GBのコースが出 ...

CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築

先日KAGOYAのVPSからIndigoに移行した際にCentOS6から7へバー ...