今回もタイトル付けに悩んだ記事です(余談です)。画像をふんだんに使った長い文章になりますからゆっくり読んでくださいね。
以前に
でWordPressのサイトからSendGridというメール配信サービスを使って安全に大量のメールを送信する方法を紹介しました。
リンク先の記事では連携させるまでを紹介していますが、そのまま運用していると問題があることに気づきます(恐らく自身でいろいろメールを受け取らないと分からないと思います)。
それは「メールの本文内にリンクを挿入した際、リンク先のURLがおかしなことになる」ということ。気づかれました??
例えば当サイトのトップページへのリンクをメールに挿入すると
「https://u7124701.ct.sendgrid.net/wf/click?upn=vVIgmawj49T6ipKy9dtQGRCQse66l3w
5Bcsdme4jc2hexcNhy9ihdFlDuvtMuxnA_
z8YTVXuOoruCnh03LdwViymvi24sq6gbVT
tgoYIcvhDsylEmh4gvVz3OMJ02sNYd5Vcy
YYM5B29FnRAku2DhP60A27kVV1HhEZqYx5
GbMZ0F8PepKG5DXHPwK7c2n2QtbHTJ1rx-
2F-2F4TcmYwXGS-2BgMXk-2B1VAr-2BTkk
zIpsrii43nVj3rBKbnxsxWzeCusAxz5gaa
kbCWknb3-2Fl59FRe6uFGffyRMVWKxnZ-2
F34gmVQhVPwcUzMihuwb2l-2B7GwI3G8jM
2h7jJfkqUE4NQ9Ga34x3bw-3D-3D」
・・・なんじゃこりゃ!!全然分からないURL。SendGridの説明によるとこれだとメールがスパム判定されてサーバーで拒否される・・・などと書かれていますけど、よしんば届いたところでクリックされるはずもない(少なくとも私がこのメール受け取ったらクリックしない)ですよね~。
そこで対策としてSendGridが提供しているのが「メールリンクホワイトリスト」という設定。これを行うことでメール内のリンクがSendGrid経由ですよ→サイトのドメインからですよ!に書き変わるようになるんです。
結論として同じリンクURLをメールリンクホワイトリスト適用後に挿入すると
「http://smail.momosiri.info/wf/click?upn=vVIgmawj49T6ipKy9dtQGRCQse66l3w
5Bcsdme4jc2hexcNhy9ihdFlDuvtMuxnA_
z8YTVXuOoruCnh03LdwViymvi24sq6gbVT
tgoYIcvhArbIuYEyuhSbrnTejTpf100owe
ZhyJGiSfYCFAMdQ6dgdPDPnFlyGL6Azxh5
dvpdfnOXK6KJ5ONDnRbGkuiQD-2Fq0G9O5
rUsA9W4p2hq06Fi7zcZhC-2F1RSQaUnF5V
zJmF-2FugxHK4aY-2FZFSj157tmTwporWn
meWLC0abrRUolOXT3DwGLrc6tn3bQsG6GX
pAYpbn5QsjKedL9Km9hBhUGEcNKWVX9NObDnlewM0itPon-2BQ-3D-3D」
違い分かります??赤字の部分が変わったところです。きちんと当サイトのドメインである「momosiri.info」になってますね。まあURLが長いので怪しさは残りますがちょっと気にする人だったら「ドメインはそのサイトのだから大丈夫だな」と認識してくれると思います。
このURLは例えばHTML形式のメールでリンク文字列に対してURLが当てられていても適用前のアドレスだったらマウスオーバーしたときに変なアドレスが表示されてしまいますからね。やっぱり改善しておきたいところです。
なぜメール内のURLが別のものになるのか??それはメール内のリンクがクリックされたかどうかをSendGridが判断し、レポートに表示するためなのです。何となくクリック率とか見てましたけどそういうことだったんですね(素人さ満載・・)。当然ながらその機能をSendGridの管理画面上で停止すればリンクの書き換えはなくなりますが、せっかくある機能なんだから使いたい!!ということで今回はメールホワイトリストの登録手順を紹介したいと思います。
なおこのサイトはドメインキングで運営しているので設定方法もそれに沿ったものとなります。特にサーバー側での設定画面については本当にさまざまなのでドメインキング以外で運用している場合はヒントとしてご覧ください。
SendGridのメールリンクホワイトリスト設定手順
いきなりですけど、実は
独自ドメインを利用するには-Domain/Email Link Whitelabel編
に公式のヘルプがあります。それを見て理解できる方はもう続きを読む必要はありません。私はこのヘルプを見て???となり試行錯誤しながら設定したので、同じ想いの方が続きは読んでいただければと思います。
では早速始めます。一番混乱するのは
- まずSendGrid側で設定
- 次にレンタルサーバー側の設定
- 最後にSendGrid側の確認
とあっちこっちへ行く必要があることと、私のようにサーバーの設定に慣れていないと文字を見ても意味不明(笑)になることです。サーバーの設定ってちょっと恐ろしいですからねぇ。失敗するとサイト表示されなくなっちゃったりして・・・(本当にそれ位怖い作業ですからそれを踏まえて読んでくださいね)。
手順もこの順番で進めていきます
1.SendGrid側で「メールリンクホワイトリスト」の設定をする
まずSendGridにログインします。左側のメニューの中から「メールリンク」をクリックします
以下の画面が出てくるので「Whitelistを追加」をクリックします
以下の画面に「サブドメイン」「ドメイン」を入力して「セーブ」をクリックします
※「サブドメイン」は現在サーバーで使用していない半角英数字を入力、「ドメイン」はサイトの独自ドメインです。
「確認」をクリックします
この画面が出てきたら画面をそのままにしておき、新しいタブでレンタルサーバーの管理画面を開きます
2.レンタルサーバー側で設定する
ドメインキングでの設定です。ドメインキング内でも管理ツールのバージョンによって画面が違いますし、サーバーによって設定メニューも項目の名称も違うと思いますので適宜読み替えて設定してください(同じ画面ならそのまま進めればOKです)。
まずは設定画面まで到達しましょう。ログインしたら「ドメイン」をクリックし、今回設定するドメインを選択します。そして表示されたメニューの中から「DNS設定」をクリックします
出てきた画面で「DNSレコードを追加」をクリックします
出てきた画面がこちら。
ここに前項の最後に登場した「SendGrid」側の情報を入力します
- 「レコードタイプ」を「CNAME」にします
- 「ドメイン名」にSendGrid側の画面にある「ホスト」を入力します(ドメインキングの場合.××の部分は入力不要なのでドットの前のみ入力します)
- 「正規名」にSendGrid側の画面にある「データ」を入力します
- 「OK」をクリックします
SendGrid側の画面に2行情報がありますので、これを繰り返して2つとも登録します
これでレンタルサーバー側の設定は完了ですので、SendGrid側の画面に戻りましょう
3.SendGrid側で最終確認をする
もうすぐ完成ですよ。
SendGrid側の画面に戻ったら右側にある「レコードの検証」をクリックします
あれ?エラーが・・・どうやらしばらく先ほどの設定が反映されるのに時間がかかるようです
5分ほど待ってもう一度「レコードの検証」をクリックしたら・・・大丈夫でした。ちなみに設定が正常に完了すると、今まで左側に×マークが出ていた項目が緑のチェックに変わります
これで完成です。お疲れさまでした。
ついでにドメインホワイトリストも設定しておきましょう
ヘルプなどでは先に書かれているのでこっちの方が大事かな?と思われますが、受信したメールのソースを見ないとこちらはパッと見て「怪しいメールだ!」とは感じないので後回しにしました。
SendGridを通じて送信されたメールのソースを確認(メールを開いて「表示」→「ソースを表示」で大抵のメールソフトでは見れます)すると、ここでは詳しくは触れませんが、outbound(外部のサーバーを通じて)で送信されてますよ!!代理送信してるのはSendGridですよ!!という記述があります。
メールを受け取るか?迷惑フォルダに自動で入れるか?などの判断は
- きちんと送信元のドメインで送信されているのか?
- 代理サーバー経由だとしたらそのサーバーは信頼できるか?
というのも大切な要素。しかも先のメールリンクホワイトリストで本文のリンクURLのドメインを変えてしまったので、メール自体の送信元とリンクURLが違えばこれも「怪しい??」と判断されかねません。
こちらも名前が「ドメインホワイトリスト」というだけで設定手順自体はメールホワイトリストと変わりありませんから、ぜひ一緒に登録しておきましょう!!