blastengineはシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
今回はblastengineを使って、Postfix経由でメール送信を行う方法を紹介します。
ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
txt @ v=spf1 include:spf.besender.jp ~all
SMTP用のパスワードを設定する
ログイン後、管理画面の右上にある設定メニューに移動します。
そしてSMTPリレーの設定で、SMTP用のパスワードを設定できます。また、IPアドレスベースの認証も可能です。
Postfix で SMTP リレーとしてblastengineを構成する
PostfixでSMTPリレーとしてblastengineを使用する設定を行います。基本的にターミナルで作業します。全体として、ルートユーザーの方が良さそうですが、sudoでも可能です。
設定ファイルを編集します。
sudo vi /etc/postfix/main.cf
設定内容は以下の通りです。
# 以下が有効であればコメントアウト
# default_transport = error
# relay_transport = error
# SMTP host and port
relayhost = [smtp.engn.jp]:587
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
header_size_limit = 4096000
smtp_sasl_security_options = noanonymous
完了したら保存します。
次に、認証情報を保存します。 /etc/postfix/sasl_passwd
を開くか、新規作成します。
sudo vi /etc/postfix/sasl_passwd
内容は以下の通りです。 USER_NAME
と SMTP_PASSWORD
はblastengineのユーザーIDとSMTP用のパスワードに置き換えてください。
[smtp.engn.jp]:587 USER_NAME:SMTP_PASSWORD
保存したら、portmap
コマンドで .db
ファイルを作成します。
sudo postmap /etc/postfix/sasl_passwd
*.dbが作られていることを確認します。
ls -l /etc/postfix/sasl_passwd*
作成されていれば、元々の sasl_passwd
ファイルは削除します。
sudo rm /etc/postfix/sasl_passwd
さらに saasl_passwd.db
ファイルの権限を変更します。
sudo chmod 600 /etc/postfix/sasl_passwd.db
設定が間違っていないか、確認します。エラーがなければ問題ありません。
sudo postfix check
設定を反映させるために、Postfixを再起動します。
sudo systemctl restart postfix
# または開始
sudo systemctl start postfix
OSによっては postfix
コマンドの場合もあります。
sudo postfix restart
# または開始
sudo postfix start
メール送信
メール送信を行います。 mail
コマンドでは送信元が変更できないので、 sendmail
コマンドを使います。 FROM_ADDRESS
と TO_ADDRESS
は適宜変更してください。
/usr/sbin/sendmail -t <<EOF
From: FROM_ADDRESS
To: TO_ADDRESS
Subject: Test from blastengine
Message from terminal
EOF
これで、blastengineの管理画面にて、メール送信完了が確認できていれば問題ありません。
もちろんメールクライアントでも受信を確認できます。
まとめ
Postfixを使えば、メール送信はローカルのものが使えるので、より手軽です。ぜひお試しください。