1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ShinobiLayer: SendGridでClick TrackingやOpen Trackingを無効にする方法(Postfix + SMTP API)

Last updated at Posted at 2016-03-07

#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も併せて導入しておきます。

Postfixの導入
# 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 互換正規表現)のことです。

/etc/postfix/main.cf
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}を設定して下さい。

/etc/postfix/header_checks
/^From:/ PREPEND X-SMTPAPI: {"filters":{"subscriptiontrack":{"settings":{"enable":0}},"clicktrack":{"settings":{"enable":0}},"opentrack":{"settings":{"enable":0}}}}

全て作業が完了したら、設定を反映させるためにPostfixを再起動します。

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がヘッダーに付与されている旨の情報が確認できます。

/var/log/maillog
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の有効・無効は切り替え可能でした。

  • Click TrackingやOpen Trackingを無効に設定した時={"enable":0}

    001.jpg
  • Click TrackingやOpen Trackingを有効に設定した時={"enable":1}

    002.jpg
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?