見出し画像

さくらのVPS(Rocky Linux)でSPFレコードを設定してPowerCMS X からメールを送信する

※ 最初に独自ドメインで運用する必要があるので、PowerCMS X に独自ドメインでアクセスする の設定をしてください。

Postfix の設定

Postfix で独自ドメインになっているか確認します。
main.cf を開きます。

sudo vi /etc/postfix/main.cf

下記箇所のホスト名を独自ドメインに書き換えます。

mydomain = ホスト名

最後に postfix を restart します。

sudo systemctl restart postfix

DNSレコード作成

私は お名前.com でドメインを取得して、TXT レコードを作成しました。
「111.222.33.444」の部分は自身のサーバーIPを入れてください。
spf の値の前後にダブルコーテーションがある場合は削除して大丈夫です。

v=spf1 ip4:111.222.33.444 ~all

レコードの反映確認は以下の画面より、オプションプルダウンを「TXT」にして「dig実行」で確認できます。
nslookup(dig)テスト【DNSサーバ接続確認】

こちらのサイトもDNS確認ができます。
DNSチェック

SPF設定

以下の2つをインスールします。

sudo dnf install pypolicyd-spf

main.cfを修正します。

// main.cfファイルをバックアップ
sudo cp -p /etc/postfix/main.cf /etc/postfix/main.cf.$(date +%Y%m%d)

// main.cfファイルを確認
ll /etc/postfix/

// main.cfファイルを修正
sudo vi /etc/postfix/main.cf

// 最終行に以下を追加
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    check_policy_service unix:private/policy-spf

master.cfを修正します。

// master.cfファイルをバックアップ
sudo cp -p /etc/postfix/master.cf /etc/postfix/master.cf.$(date +%Y%m%d)

// master.cfファイルを確認
ll /etc/postfix/

// master.cfファイルを修正
sudo vi /etc/postfix/master.cf

// 最終行か適切な箇所に以下を追加
policy-spf  unix  -       n       n       -       -       spawn
    user=nobody argv=/usr/bin/policyd-spf -c /etc/python-policyd-spf/policyd-spf.conf

policyd-spf.confを修正します。

// policyd-spf.confファイルをバックアップ
sudo cp -p /etc/python-policyd-spf/policyd-spf.conf /etc/python-policyd-spf/policyd-spf.conf.$(date +%Y%m%d)

// policyd-spf.confファイルを確認
ll /etc/python-policyd-spf/

// policyd-spf.confファイルを修正
sudo vi /etc/python-policyd-spf/policyd-spf.conf

// 最終行に以下を追加
debugLevel = 1
defaultSeedOnly = 1
HELO_reject = SPF_Not_Pass
Mail_From_reject = Fail
PermError_reject = 1
TempError_Defer = 1

Postfixを再起動します。

sudo systemctl restart postfix

以下のコマンドからメールを送信できます。
下記コードの <送信元メールアドレス> の所に no-reply@sample.com のように設定してください。必ず自身のドメインを記述してください。
<送信先メールアドレス> は Gmail など、受信できるメールアドレスを記述してください。
Gmail はセキュリティに厳しいので送信先としてベストです。このサンプルは件名を設定していませんがメール送信はできます。

sudo echo "テストメールです" | sendmail -t -f <送信元メールアドレス> <送信先メールアドレス>

例
sudo echo "テストメールです" | sendmail -t -f no-reply@sample.com hoge@gmail.com

Gmail のメッセージソースを見ると SPF が NONE から PASS になっていると思います。

PowerCMS X は管理画面の右上のスパナアイコンから設定画面に入れるので、「システムのメール」の入力欄右にある「テストメール」をクリックして、Gmail 宛に送信してみてください。

Gmailにメール送信はできましたが、DKIM、DMARC の設定も必要です。


いいなと思ったら応援しよう!