#1. はじめに
SendGrid初心者のための注意点(SoftLayer版) にて紹介したように、SendGridはどのパッケージを選択するかによって、デフォルトの送信オプションが異なります。特に注意するべき項目は、Click TrackingやOpen Trackingです。詳細は先述のリンクをご確認下さい。
リレーサーバーによっては、SendGridへの転送前にPostfixにてX-SMTPAPIヘッダを付与することで、メール送信時にClick Tracking/Open Trackingを無効にすることが可能です。ここでは、Postfixをリレーサーバーとして利用している際に、SendGridのX-SMTPAPIヘッダを付与することで、各種設定を切り替える方法を提示します。
#2. Postfixの導入と構成
##2.1 Postfixの導入
今回は執筆時点で最新のCentOS7を利用しています。SASL認証を使用するので、cyrus-sasl-plainも併せて導入しておきます。
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# yum install -y postfix cyrus-sasl-plain
# postconf |grep mail_version
mail_version = 2.10.1
milter_macro_v = $mail_name $mail_version
##2.2 SendGridと連携するためのリレー設定
/etc/postfix/main.cf
に以下の設定を追記します(最低限必要なもののみ記載しています)。yourSendGridUsernameとyourSendGridPasswordの箇所は、SendGridのuserid/passwordを入力します。ちなみに、pcreとはPerl Compatible Regular Expressions(Perl 互換正規表現)のことです。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:yourSendGridUsername:yourSendGridPassword
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587
header_checks = pcre:/etc/postfix/header_checks
参考URL
https://sendgrid.kke.co.jp/docs/Integrate/Mail_Servers/postfix.html
https://knowledgelayer.softlayer.com/procedure/e-mail-delivery-service-server-side-configuration-centos-plesk-postfix
#3. X-SMTPAPIヘッダ付与の設定
Postfixでのリレー時にX-SMTPAPIヘッダを付与するために、/etc/postfix/header_checks
に以下の設定を追記します。ここでは、subscriptiontrack、clicktrack、opentrackを全て無効にする際の例を挙げています。もし有効にしたい場合は全て{"enable":1}を設定して下さい。
/^From:/ PREPEND X-SMTPAPI: {"filters":{"subscriptiontrack":{"settings":{"enable":0}},"clicktrack":{"settings":{"enable":0}},"opentrack":{"settings":{"enable":0}}}}
全て作業が完了したら、設定を反映させるためにPostfixを再起動します。
# systemctl restart postfix
参考URL
https://sendgrid.kke.co.jp/docs/API_Reference/SMTP_API/
https://sendgrid.com/docs/Utilities/smtpapi_validator.html
http://hoursofop.tumblr.com/post/17760274650
#4. テスト
以下のように端末からテストします。
# sendmail xxxxx@xxx.xxx.xxx
From:test@test.com
To:xxxxx@xxx.xxx.xxx
Subject: Test4
This is test4
http://www.yahoo.co.jp
.
すると、maillogから、X-SMTPAPIがヘッダーに付与されている旨の情報が確認できます。
Mar 7 22:34:00 osc01 postfix/pickup[22110]: C13B2FC30D: uid=0 from=<root>
Mar 7 22:34:00 osc01 postfix/cleanup[26093]: C13B2FC30D: prepend: header From:test@test.com from local; from=<root@osc01.localdomain> to=<xxxxx@xxx.xxx.xxx>: X-SMTPAPI: {"filters":{"subscriptiontrack":{"settings":{"enable":0}},"clicktrack":{"settings":{"enable":0}},"opentrack":{"settings":{"enable":0}}}}
Mar 7 22:34:00 osc01 postfix/cleanup[26093]: C13B2FC30D: message-id=<20160307133400.C13B2FC30D@osc01.localdomain>
Mar 7 22:34:00 osc01 postfix/qmgr[2397]: C13B2FC30D: from=<root@osc01.localdomain>, size=441, nrcpt=1 (queue active)
Mar 7 22:34:02 osc01 postfix/smtp[26095]: C13B2FC30D: to=<xxxxx@xxx.xxx.xxx>, relay=smtp.sendgrid.net[xxx.xxx.xxx.xxx]:587, delay=48, delays=46/0.14/1.1/0.29, dsn=2.0.0, status=sent (250 Ok: queued as vG74ZLh5TnCCvxnH3mkz_A)
Mar 7 22:34:02 osc01 postfix/qmgr[2397]: C13B2FC30D: removed
ちなみにFree Packageであっても、Click TrackingやOpen Trackingの有効・無効は切り替え可能でした。