last update 2018年5月11日 10:13

【Gmail×Apps Script】自分を含む疑似メーリングリストへのメールを自分が受信できない問題

Businessman Thinking

ちょっと説明が面倒なのですが、たぶん2018年4月の後半くらいから、Google Apps Script から送信したメールが特定の条件下で Gmail で受信できない問題、というか仕様変更があったようです。

僕の環境だけで発生しているのかどうかは判りませんが、現状、少なくとも手元の環境では、以下の条件・内容で症状を確認しています。

  • Gmailのフィルタ機能を使って2つのアドレスへ転送を行っている疑似メーリングリストのメールアドレス「ML」があり、その1つ目の転送先アドレスを「FW1」、2つ目の転送先アドレスを「FW2」とする。
  • ここでいう疑似メーリングとは、この記事のようにフィルターを利用した転送設定を指す。
  • 「FW1」と「FW2」は、ともに Gmail アドレスである。
  • 「FW1」の Google アカウントで Gmail にログインした状態で、From を「FW1」、宛先を「ML」として手動でメール送信する。すると、「FW2」のアカウントではメールを受信できるが、「FW1」の受信トレイにはメールが配信されない。(これは大昔からの仕様)
  • Google Apps Script から MailApp.sendEmail 関数でメール送信する場合、「FW1」の Google アカウントに設置されたスクリプトから宛先「ML」へ送信すると、「FW1」の送信済みトレイには送信したメールが残るが「FW1」の受信トレイにはメールが配信されなくなった。(恐らくは2018年4月から。それ以前は「FW1」へメールが配信されていた)

当初は、何が悪いのかさっぱり分からず難儀しましたが、とりあえず、疑似メーリングリスト「ML」を利用するのをやめて、MailApp.sendEmail 関数で複数の宛先を直接指定することで回避しました。

Gmail でフィルタを使った転送設定を行っている場合、元々、転送先として指定されたアドレス「A」から疑似メーリングリストへ送信されたメールは「A」へ転送されない仕様になっていたわけですが、このルールが最近、Google Apps Script へも適用されるようになった。ということなのだと個人的には解釈しています。

そういえば、数週間前にうちのサイトの疑似メーリングリストの記事へのアクセスが微妙に増えた記憶があるので、ひょっとすると、この件で困った人が少なからずいたのかもしれません。

個人的には、前の仕様に戻して欲しいところではあるのですが、なんとなーく、これは仕様変更ってことで元には戻らないような…。

コメントを記入