【FileMaker】SendGrid経由でメールを送る 添付ファイル編

さて、SendGridでメールを送る準備編テキストメール編を経て、今回はファイルをメールに添付して送る話です。
FileMakerのバージョン等は、準備編の記事を参考にしてください。

テーブル設計

今回もテスト用ですがテーブルにオブジェクトフィールドを設定しました。
通常の運用だと、ここに請求書のpdfや管理している画像などが入る感じでしょうか?
計算フィールドでBase64EncodeRFCを使ってオブジェクトをテキストにしていますが、データサイズが増えてしまうのでメールに添付するだけでしたらスクリプトなどで処理中に変換するだけでいいと思います。
Base64EncodeRFCで指定する4648は、エンコードしたデータに改行コードを付けない、という意味です。
改行コードありの指定をしてしまうと、ある一定の間隔(RFC番号ごとに決まっている間隔)で改行コードが入ってしまい、復元できなくなってしまいますので、注意してください。
スクリーンショット 2021-05-11 20.35.36.png

SendGrid APIの確認

SendGrid APIでは、attachmentsというキーを配列で指定します。
contentとfilenameが必須項目です。
contentは、Base64EncodeRFCでエンコードしたテキストを設定します。
filenameはGetContainerAttributeで取得できます。
スクリーンショット 2021-05-11 20.43.06.png

スクリプトの確認

基本的なスクリプトは、テキストメール編を参考にしてください。
今回追加したのは、attachmentsキーの部分になります。
当然ですが、attachmentsキーは配列なので複数のファイルを設定できます。
スクリーンショット 2021-05-11 20.47.50.png

実行する

では、今回も自分宛に送信してみます。
今回は、infoseek,gmail,macMailアプリでテストしてみました。

infoseek

成功です。
スクリーンショット 2021-05-11 20.58.11.png

gmail

こちらも成功です。
「sendgrid.net経由」というのも表示されています。
スクリーンショット 2021-05-11 20.58.22.png

macMailアプリ

だがしかし、こちらはちょっと問題がありました。
添付ファイル名の日本語(2バイト文字)が文字化けしてしましました。
スクリーンショット 2021-05-11 20.59.09.png
まだ解決していませんが、とりあえず添付ファイルを送信できて、受信したメールから添付ファイルをダウンロード→開くということもできたので、今回はこれで終わりにします。
解決策がわかったらまた記事にします。