API経由で添付ファイルを送信する際の注意点

Customers Mail CloudではSMTPサーバとWeb API経由でのメール送信をサポートしています。メール送信がサポートされていない環境であったり、FaaS(Function as a Service)などではWeb API経由での送信がお勧めです。

今回はWeb API経由で添付ファイルを使ってメール送信を行った際に発生する問題と解決策について紹介します。

巨大な添付ファイルを送ろうとした場合

Web API経由でも添付ファイルを利用できますが、ファイルが大きすぎるとエラーが出ます。これは500系エラーになるので注意してください。

{
  "errors":[
    {
      "code":"01-001",
      "field":"",
      "message": "System error was occurred. Please contact system administrator."
    }
  ]
}

ファイルのサイズですが、20MBを超えるとエラーになります(2021年3月執筆時点での仕様)。このファイルサイズはBASE64エンコードされる関係上、16MBを超えるとエラーになると思われます(BASE64エンコードすると約1.3倍になります)。14MB程度であれば送信できます。

ZipファイルをGmail宛に送信すると届かない

テストしていて分かったのですが、Zipファイルを添付してメール送信した場合、Gmailのアドレスに届きませんでした。メールIDは取得できているので、Customers Mail Cloud側では問題なく完了しています。なお、管理画面で見ると、次のようなエラーメッセージが確認できました。

552 5.7.0 This message was blocked because its content presents a potential 5.7.0 security issue. Please visit 5.7.0 https://support.google.com/mail/?p=BlockedMessage to review our 5.7.0 message content and attachment content guidelines. i23si7193442pjz.58 - gsmtp (in reply to DATA end)

これはGmailの仕様に伴うものです。他にも、下記のような拡張子のファイルはGmail宛に送れません。

.ade、.adp、.apk、.appx、.appxbundle、.bat、.cab、.chm、.cmd、.com、.cpl、.dll、.dmg、.ex、.ex_、.exe、.hta、.ins、.isp、.iso、.jar、.js、.jse、.lib、.lnk、.mde、.msc、.msi、.msix、.msixbundle、.msp、.mst、.nsh、.pif、.ps1、.scr、.sct、.shb、.sys、.vb、.vbe、.vbs、.vxd、.wsc、.wsf、.wsh

これらの拡張子を使ったファイルを添付した場合、Customers Mail CloudのAPIはメール送信されたようにIDを返却しますが、サーバ間での通信時に拒否されます。

まとめ

添付ファイル周りは注意が必要です。送ったはずなのに届かないといった現象が確認できた際には、添付ファイルに問題がないか確認してください。

Email Sending API