2012-12-04 84 views

回答

5

請參閱http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_email_outbound.htm瞭解更多關於發送出站電子郵件的信息。

下面是發送電子郵件到以前的主人一個示例代碼,當所有者變化:

trigger SendEmailOnOwnerChange on Account (after update) { 
    if (trigger.old[0].OwnerId != trigger.new[0].OwnerId) { 
     Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); 

     String emailAddr = [select Email from User where Id = :trigger.old[0].OwnerId].Email; 
     String newOwnerName = [select Name from User where Id = :trigger.new[0].OwnerId].Name; 

     String[] toAddresses = new String[] {emailAddr}; 
     mail.setToAddresses(toAddresses); 

     mail.setSubject('Owner Changed for Account : ' + trigger.new[0].Name); 

     mail.setPlainTextBody('Owner of Account: ' + trigger.new[0].Name + ' Changed to ' + newOwnerName); 
     mail.setHtmlBody('Owner of Account: <b>' + trigger.new[0].Name + '</b> Changed to <b>' + newOwnerName + '</b>'); 

     Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); 
    } 
} 

當然,目前任職只有一條記錄,需要bulkified批量更新。

+0

謝謝。有效。 ... –

0

您無法爲所有對象設置通用警報。
而是爲您感興趣的對象編寫一個更新後觸發器,用於比較Trigger.old[n].OwnerIdTrigger.new[n].OwnerId

我會建議把比較代碼放在一個所有觸發器調用的類方法中。您可以使用Dynamic Apex用於此目的,sObject類型。

在新類方法中,使用Messaging.SingleEmailMessage類發送警報。