見出し画像

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

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

Postfix の設定

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

vi /etc/postfix/main.cf

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

mydomain = ホスト名

... 中略 ...

mydestination = $myhostname, localhost.$mydomain, localhost, ホスト名

最後に 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つをインスールします。(libspf2 は不要かもしれないです)

sudo dnf install libspf2
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

以下のコマンドからメールを送信できます。
hoge@hogehoge.com は form です。
送信先メールアドレスの所に sample@gmail.com のように送り先を設定してください。gmail がセキュリティに厳しいので送信先としてベストです。このサンプルは件名を設定していませんがメール送信はできます。

sudo echo "テストメールです" | sendmail -t -f hoge@hogehoge.com 送信先メールアドレス

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

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

Gmailにメール送信はできましたが、DKIM、DMARC の設定も必要だと思いますので、対策できたら記事書きます。

この記事が気に入ったらサポートをしてみませんか?