Gmail宛に送信できない?Shopifyで取得した独自ドメインからメールを送信する時に発生するエラーの原因と解決法
Shopifyでサイトを運用していると、外部サービスと連携してサイトのドメインメールを別のメールアドレスに転送していることも多いと思います。そのような時、突然Gmail(@gmail.com)宛のメールが送信エラーになった経験はありませんか?もし、決済などの購入に関する重要なメールが送られなかったらクレームを受けることになります。解決しようとしても以前は同じ設定で送信できていた場合もあるため、原因を突き止めることは難しいです。
実はこれらの原因はドメイン設定にある可能性が高いですが、事業会社でも社内でドメインに詳しい人がいなくて困る場合があると思います。
今回はShopifyの運用において、突然Gmail宛のメールが送信できなくなった場合の原因と解決法についてご紹介します。ニッチな内容ですが、困っている誰かの参考になれば幸いです。
Shopifyで取得したドメインにメールホスティングサービスはない!
はじめに、Shopifyのメールのシステムについて確認していきましょう。
Shopifyでサイトを開設するとき、ドメインはお名前.comのような外部の会社で購入するか、Shopifyで購入する必要があります。
もちろんShopifyで購入したドメインでサイトを運用することは可能なのですが、このドメインにはメールホスティングサービスの機能がありません。つまりShopifyで購入したドメインのメールアドレスを送信元としてメールを送信することはできないのです。
しかし例外があって、Shopifyで取得したドメインでも管理画面から操作できるメールは配信することができます。なので注文確認のような通知メールや顧客管理から送信できる個別メールなどは問題なく送信できるのです。
ドメイン名のメールは外部のメールホスティングサービスを使って配信する
それではShopifyで購入したドメインのメールアドレスを送信元としてメールを送信するにはどうすれば良いのでしょうか。
方法は2つあります。1つ目はZoho MailまたはGoogle Workspaceをドメインに接続する方法です。2つ目は外部のメールホスティングサービスを使用する方法です。
Zoho MailまたはGoogle Workspaceに接続する
Shopifyの公式サイトに接続方法が紹介されています。ただし、これら2つの機能を使用したことが無かったり、他のメールサービスを既に利用しているのであれば導入しにくいかもしれません。
外部のメールホスティングサービスを使用する
こちらの方法はより一般的です。外部のメールアドレスを取得し、送信元としてメールを運用することができます。
この時、@以下が異なってしまいますが、Shopifyのメール転送サービスを使うことで、外部のアドレスを利用しながら、ストア宛アドレスの@以下にShopifyで取得した独自ドメインを設定できます。
つまり外部のアドレスで送信しても、受信側ではShopifyで取得したドメイン名からメールが届いたように表示することができます。
しかし、転送されたメールに対して受信側が返信すると、独自ドメイン宛ではなく、外部アドレス宛にしか送信できないことに注意してください。
以上のように、外部メールアドレスに転送することで、Shopifyで取得したドメイン名で送信することができます。
なぜGmail宛だけに送れないのか?
これはGmailのセキュリティが関係しています。前述のように転送することでShopifyで取得したドメイン名で送信することができます。これはユーザー側で表示されるアドレスと実際に送信されているアドレスは異なる事を意味します。悪く言えば、危険なアドレスで送信してもユーザー側の表示を変えて騙すことができます。
なりすましが起きないように、Gmailは転送元となるアドレスと転送されたアドレスに関連性があるかチェックしています。
関連性がないと評価されると送信エラーが発生するのです。これがGmail宛に送れない理由になります。
厄介なのが、このセキュリティチェックが突然実施されることです。ローンチ当初はチェックが行われず通常通りメールが送信できてしまい、ある日突然チェックが入り、送信できない事象が発生する場合があります。
それでは、このセキュリティチェックは何を確認して判断しているのでしょうか。それはドメインで指定できるSPF (Sender Policy Framework) レコードが関係しています。
SPFレコードを使って独自ドメインを認証させる方法
SPFレコードで転送元と独自ドメインの関連性をチェックするため、Shopifyで取得した独自ドメインに転送元のSPFレコードを認証させる必要があります。
SPFレコードとは?
ドメイン外のサービスを使用する際に、独自ドメインを所有していることを確認するためのDNS設定をTXTレコードに記述します。TXTレコードのうち、メールアドレスを認証するための記述がSPFレコードになります。
送信するメールのSPFが認証されているか確認する
Gmail宛にメールが届かない場合、送信しているメールがSPF認証されているか確認しましょう。
受信できるメールからソースを確認することができます。
SPFの項目を確認すると、「SOFTFAIL」となっています。これは認証されていないことを意味します。
認証できていれば「PASS」と表示されます。
SPFレコードの書き方
認証させるためにどのようなSPFコードを記述する必要があるか確認していきましょう。
SPFレコードは「v=spf1」からはじまり、以下のような記述ができます。
v=spf1 ip4:XXX.XXX.XX.X ip4:YYY.YYY.YY.Y ~all
v=spf1 include: XXX. XXX.jp include: YYY.YYY.jp ~all
SPFの「v=spf1」の記述は1つしか設定できないため、上記のように2つある場合は以下のようにまとめます。
v=spf1 ip4:XXX.XXX.XX.X ip4:YYY.YYY.YY.Y include: XXX. XXX.jp include: YYY.YYY.jp ~all
※要素ごとで半角スペースで区切ることに注意してください。
認証するために送信元のドメイン会社からSPFレコードを入手しなければなりません。「v=spf1」の形式で入手できれば良いですが、ip4:XXX.XXX.XX.Xのようにip4の値だけ共有される場合もあります。そんな時は上記で説明した記述方法に沿って、SPFレコードを作成しましょう。
自分で作成したけど本当にこれで合っているか自信が無い時は、以下のサイトで確認することができます。
このサイトの「Is this SPF record valid - syntactically correct?」というセクションで、独自ドメインと作成したSPFレコードを記入します。「check SPF record」をクリックすると、作成したSPFレコードの記述が問題ないか確認してくれます。
次項で記載しますが、設定しても反映までに半日以上はかかってしまうため、事前にチェックすることをお勧めします。
Shopifyではドメイン設定に記述する
用意したSPFレコードをShopifyで取得したドメインに記述していきましょう。
管理画面の設定 > ドメイン > 右上のDomain settings > Edit DNS Settings を選択します。
下の方にあるTXT recordの欄に記述します。
Nameには「@」を記述し、TXT Valueに準備した「v=spf1 …」を追加します。これで設定は完了です。
体感ですが、反映されるまでに半日〜1日はかかります。
SPFが設定できているか確認する方法
意外と簡単に設定できたと思う反面、本当に設定できているか?半日も待ってられない!と思う方もいるはず。
そんな方のために、SPF設定ができているか確認できる外部サイトをご紹介します。
このサイトは、独自ドメインを記入するだけで、ドメインで設定されている様々な情報を読み取ることができます。「SPF record Lookup」を選択すると、設定されているSPFを確認することができます。
送信したメールのSPFがPASSになっているか確認する
設定が完了したら再度送信してメールのソース表示からSPFがPASSになっているか確認しましょう。PASSになっていれば無事にGmail宛にも送れているはずです!
注意:外部システムから通知する場合、Shopifyと外部メールサーバーにSPFを追加する
例えば決済関連で外部システムを導入している場合、外部システムからユーザーに通知を送信する場合があります。
外部システム > 外部メールサーバー > Shopify独自ドメイン > ユーザー
上記の場合、外部メールサーバーには外部システムのSPFレコード、Shopify独自ドメインには外部システムと外部メールサーバーのSPFレコードを設定しなければなりません。
Shopify独自ドメインを取得した場合は、メールアドレスの運用に注意しよう
Gmail(@gmail.com)宛に送れない原因はなりすまし防止のセキュリティの問題であり、SPFレコードを設定することで解決することが分かりました。設定自体は簡単ですが、ドメインに関する用語が出てくると理解するのに時間がかかります。
Shopifyで取得したドメインに限らず、弊社はShopifyに関するナレッジや経験が豊富にあります。何かお困りごとがございましたらお気軽にこちらからご連絡ください。
最後までお読みいただきありがとうございました!