読者です 読者をやめる 読者になる 読者になる

dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

follow us in feedly

[Salesforce]Apexで添付ファイルつきのメールを送信する

ちょいメモ。
Saleforce の添付ファイルを取ってくる方法と、Visualforce ページを pdf 化して送る方法。

サンプルコード

注意点

添付するファイルの合計サイズが 3 MB を超えると、添付ファイルは直接でなくダウンロードリンクになるらしい。

Guidelines for Sending Emails

添付ファイルの合計サイズが 3 MB 以上である場合、または添付ファイルが一括メール送信で送られる場合、各添付ファイルはリンクとして送信されます。たとえば、それぞれが 1.7 MB の 2 つの添付ファイルを送信したとします。ファイルの合計サイズは 3.4 MB であるため、受信者は 2 つのリンクを受信します。

また、2 の Visualforce ページを pdf ファイル化して送信する方法については
トリガやスケジュール済み Apex などからは getContent が使えないという制約があるので注意。

ref. getContent() | Visualforce 開発者ガイド | Salesforce Developers

このメソッドは、次のものには使用できません。

  • トリガ
  • スケジュール済みの Apex
  • 一括処理ジョブ
  • Test メソッド
  • Apex メールサービス

これはかなり無理矢理なワークアラウンドがあるらしいんだけど、後日また別の記事に。

リファレンス

EmailFileAttachment Class | Force.com Apex Code Developer's Guide | Salesforce Developers

Visualforce ページを添付したい場合(公式)
メール添付ファイルの作成 | Visualforce 開発者ガイド | Salesforce Developers

Triggerで添付ファイルを含めたメールを送信する - 逆引きForce.com