dackdive's blog

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

[Salesforce]Apexでメールを送信した時に「活動履歴」に残す方法

メモ。
ここに書いてた。

http://nanostuffs.com/Blog/?p=1602

ApexでMessaging.SingleEmailMessageを使ってリードや取引先責任者にメールを送信する場合も
setSaveAsActivity(true)を使うと活動履歴に残すことができる。
ただし、こちらにあるように
宛先の指定にsetTargetObjectId(s)を使わないとだめ。

また、setTargetObjectId() は ID に User, Lead, Contact しか選べないので
そのままではケースなどのレコードの活動履歴に残すことができない。
この場合は setWhatId() というメソッドを使用する。

サンプルはこちら。

ちなみに、取引先責任者にはHasOptedOutOfEmailという項目(日本語のラベルは「メール送信除外」)があり、これにチェックが入っているContactにはメールを送信できない(はず)

リファレンス

setSaveAsActivity については
Salesforce Developers

setTargetObjectId, setWhatId については
Salesforce Developers