はじめに
BizRobo!を使ってメールを送信したい場合、メールの送信
というアクションを使って外部にメールを送信することができます。
一方で全て正しく設定したはずなのに、メール送信が失敗してGmail宛に送信するとエラーになると聞きました。
とういうことでしょうか。
検証してみよう
とりあえず送信してみます。
まず、BizRobo!を使ってメールを送ってみます。ド初心者ですからナレッジベースの記事を見ながら作りました。
検証目的ですが、件名には「test」ではなくきちんとした文字列を設定しました。
サーバーとポートの設定はMicrosoft公式サイトの情報を利用しました。
送ってみます!
エラーは発生せず、メールを受信できました。
無事に届いていることは嬉しいけど、エラーが再現できないと検証作業は…私の検証作業……
直接上司に聞いてみました!
「SPF制限でなはいか?最近Gmailは更に厳しくなったみたいです」
とのこと。
聞いたことのない言葉が出ました!SPFとは何でしょうか?
SPFとは?
ChatGPTに聞いてみます。長文読解は苦手ですから、念のため100文字で頼みました。
違うと思います。もう一回、
SPFは仕組みであり、その設定はSPFレコードといいます。
つまりロボットが送ったメールはなりすましメールと判断され、Gmail側で拒否されたために送信エラーが出たのかもしれません。これ、冤罪じゃないですか?
具体的にどう機能していますかね、SPF。ChatGPTは画像がないから長い説明を頑張って読んでみて……
結局Googleしました。うん。
SPFとメール送信の仕組み
調べてみると、SPFのことを知るためには、メール送信の仕組みが分からないと進めません。むしろ、SPFはメール送信の仕組みの一環であることが分かりました。
実はロボットだけではなくIT自体もド初心者ですが、流れを描いてみました。
完全な送信フローは複雑でたくさんの確認が飛ばされているようですが、一旦概要を抑えるための荒い図にまとめます。
図を見て分かったことは、SPF専用のサーバーがあるわけではなく、③と④のシーケンスでDNSサーバーと受信側のメールサーバーがやり取りしているプロセスであること。SPFはDNSサーバーに関連しているようですが、どんな関係でしょうか?
SPFレコードとDNS?
SPFとは、DNSサーバーに設定するレコードのことです。
SPFレコードはDNS(Domain Name System)サーバー内で設定・保存され、メール送信元のドメインの正当性を示します。つまり、なりすましメール、迷惑メールではないことの確認に使用します。
受信側メールサーバーはDNSからSPFレコードを取得し、送信元のIPアドレスが許可されたものかを確認します。それにより、受信したメールが正しいメールかそうでないかの判別ができるということです。
DNSサーバーにSPFレコードを設定することは必須ではありませんが、メールのセキュリティを高めるために、SPFレコードを設定することをお勧めします。
まとめ
Googleで検索すると以下のようなページが見つかりました。
どうやらGmailにメールを送信するためには、SPFが設定されたサーバーからのメール送信が必要なようです。
以上のことから、冒頭「BizRobo!でGmail宛にメールを送信できない」という事象は、メールの送信
アクションの中に指定したメール送信サーバーが SPFレコードに登録されていないサーバーだったため、Gmail側でなりすましメールと判断されてしまったのではないかと思います。
最初に検証をしようとロボットを作って一発で送信成功した理由は、SPF指定済みの正しいメールサーバー情報を使ったからかな、と思っています。
「メールが届かない」現象は他の理由もあると思いますが、一つの対策として覚えておいても損はなさそうです。