誕生日用のApexスケジューラクラスを作成しました。クラスは機能し、誕生日が2日後に、ディレクターにメールを正常に送信します。
ただし、2日後に誕生日があるときに送信される電子メールテンプレートには、連絡先の姓名と生年月日が含まれている必要があります。(電子メールテンプレートは次のようになります。これは、名:{!Contact.FirstName}
、名:の誕生日{!Contact.LastName}
がオンになっていることを通知するスケジューラー生成の電子メールです{!Contact.Next_Birthday__c}
。
私のスケジューラーでは、SOQlステートメントを使用して、連絡先のIDと名をデータベースに照会します。
クエリを呼び出した後、クエリした情報をメールテンプレートで使用する文字列/メソッドに変換するにはどうすればよいですか?
私の推測では、クエリの結果を文字列として返しますか?アドバイスをいただければ幸いです。
これが私のコードです:
global class BirthdayName implements Schedulable
{
global void execute (SchedulableContext ctx)
{
sendBirthdayEmail();
}
public void sendBirthdayEmail()
{
for(Contact con : [SELECT Contact.name, Id FROM Contact WHERE Next_Birthday__c = : system.Today().addDays(2)])
{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setTemplateId('00XJ0000000M31w');
mail.setTargetObjectId('005J0000000JWYx');
mail.setSaveAsActivity(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
}
}
}