在salesforce開發(fā)中,發(fā)送郵件是一個很常見的功能。比如在進入審批流以后的通過和拒絕的操作需要發(fā)送郵件給記錄的owner,和其他系統(tǒng)交互以后更改了某些狀態(tài)通知相關(guān)的User或者Contact等等。可以說,發(fā)送郵件在業(yè)務(wù)上是一個必不可少的環(huán)節(jié)。
salesforce提供了多種發(fā)送郵件的方式,比如SingleEmail,MassEmail,這里主要說一下SingleEmail.
SingleEmail操作位于Messaging.SingleEmailMessage類中,主要有兩種方式發(fā)送郵件,一個是可以通過模板,一個是不需要借助模板。這里主要說一下相關(guān)主要方法:
public Void setToAddresses(String[] toAddresses):設(shè)置接收人的email地址;
public Void setCcAddresses(String[] ccAddresses):設(shè)置抄送人的email地址;
public Void setBccAddresses(String[] bccAddresses):設(shè)置私密抄送人的email地址;
public Void setCharset(String characterSet):設(shè)置email的內(nèi)容的編碼;
public Void setTargetObjectId(ID targetObjectId):當(dāng)使用email template時,此方法是必須使用的。ID可以為contact/lead/user.默認(rèn)email會發(fā)送此ID。而且使用此方法發(fā)送郵件,不會使email limit 加1,所以如果只是給org內(nèi)部的user或者contact發(fā)送,可以使用此種方式減少一些相關(guān)限制。
public Void setSaveAsActivity(Boolean saveAsActivity):如果設(shè)置了targetObjectId,則需要對它賦值為false,默認(rèn)為true;
public void setTreatTargetObjectAsRecipient(Boolean treatAsRecipient):設(shè)置targetObjectId是否作為接收人接收此郵件,默認(rèn)是true,如果不想將targetObjectId作為接收人,則設(shè)置為false;
public Void setPlainTextBody(String plainTextBody):設(shè)置郵件body內(nèi)容,如果body內(nèi)容為普通的文本;
public Void setSubject(String subject):設(shè)置郵件標(biāo)題;
public void setEntityAttachments(List<String> ids):設(shè)置郵件的附件,參數(shù)可以傳遞document ids;
public Void setTemplateId(ID templateId):設(shè)置email的template,可以通過模板發(fā)送相關(guān)郵件,如果使用email的template并且里面沒有相關(guān)的format,可以不用設(shè)置body和subject;
public Void setHtmlBody(String htmlBody):設(shè)置郵件的body,如果body內(nèi)容為html內(nèi)容;
public Void setWhatId(ID whatId):如果template中使用了merge field,可以指定需要引用的object的ID,比如模板中使用了{!Account.Name},則需要設(shè)置whatId項為account的ID;
public Void setSenderDisplayName(String displayName):設(shè)置郵件的發(fā)件人的顯示名稱;
public Void setReplyTo(String replyAddress):設(shè)置接收人回復(fù)郵件的email地址;
其他方法可以自行查看。下面內(nèi)容為不使用模板和使用模板demo.
一.不