0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Salesforce フローには、メールを送信できるアクションがあります。このアクションは、特に Salesforce 管理者にとって、コードベースのソリューションの非常に優れた回避策です。これらのアクションは、メール テンプレートと複数のメールに対応できます。本文、受信者アドレス リスト、リッチ テキスト形式の本文 (true または false)、送信者のメール アドレス、件名などを定義できます。これらはすべてフロー メール アクションの入力として機能し、変数を定義することで動的に追加できます。これにより、メール関連のタスクで比類のない柔軟性が得られます。標準のフロー メール アクションでは、メールへの CC アドレスの追加はサポートされていません。そこで、ここでは、ユーザーがフローを通じて CC メール アドレスを追加する方法について説明します。

この問題に対する最適な解決策は、フロー内で Apex が提供するカスタム機能を使用できる中間点を持つ、呼び出し可能なカスタム アクションを作成することです。このアプローチでは、フロー内にカスタム Apex アクションを組み込み、ジョブを完了するために必要なパラメーターを提供するブラック ボックス アプローチが提供されます。そのアクション内で何が起こっているかを知る必要はありませんが、パラメーターを提供して目的の結果を得ることができます。

public class EmailSender {

    @InvocableMethod(label='Send Email with CC')
    public static List<List<String>> sendEmailWithCC(List<EmailRequest> requests) {
        List<List<String>> responses = new List<List<String>>();
        for (EmailRequest req : requests) {
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
            mail.setToAddresses(new String[] {req.toAddress});
            if (req.ccAddress != null) {
                mail.setCcAddresses(new String[] {req.ccAddress});
            }
            mail.setSubject(req.subject);
            mail.setPlainTextBody(req.body); 
            Messaging.SendEmailResult[] results = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
            if (results[0].isSuccess()) {
                responses.add(new List<String>{'Email sent successfully'});
            } else {
                responses.add(new List<String>{'Error sending email: ' + results[0].getErrors()[0].getMessage()});
            }
        }
        return responses;
    }
    public class EmailRequest {
    @InvocableVariable(required=true)
    public String toAddress;

    @InvocableVariable(required=true)
    public String ccAddress;

    @InvocableVariable(required=true)
    public String subject;
    
    @InvocableVariable(required=true)
    public String body;
}
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?