Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email Apex初学者-来自触发器的电子邮件_Email_Salesforce_Apex Code_Soql - Fatal编程技术网

Email Apex初学者-来自触发器的电子邮件

Email Apex初学者-来自触发器的电子邮件,email,salesforce,apex-code,soql,Email,Salesforce,Apex Code,Soql,这是我用APEX编写的第一段代码,所以我正在学习。。。对Java有一点了解,可以达到研究生水平,但我不知道为什么这不起作用 我知道它并没有像之前告诉我的那样给salesforce一个错误,因此在最后注释掉了调试。我更改了一封联系人电子邮件,它就这么做了,但我没有收到任何电子邮件!这是代码,谢谢你的帮助 trigger Test1 on Contact (after update) { //IF Email has changed (look at the old email and compa

这是我用APEX编写的第一段代码,所以我正在学习。。。对Java有一点了解,可以达到研究生水平,但我不知道为什么这不起作用

我知道它并没有像之前告诉我的那样给salesforce一个错误,因此在最后注释掉了调试。我更改了一封联系人电子邮件,它就这么做了,但我没有收到任何电子邮件!这是代码,谢谢你的帮助

trigger Test1 on Contact (after update) {

//IF Email has changed (look at the old email and compare to new)
if(trigger.old[0].Email != trigger.new[0].Email){


    //Commit current transaction, reserver email capacity
    Messaging.reserveSingleEmailCapacity(1);
    //Create an email message object
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();

    //List<Messaging.SendEmailResult> results = new list<Messaging.SendEmailResult>();
    //hold email address
    String[] toAddresses = new String[] {trigger.new[0].Email};

    //Assign new address string
    mail.setToAddresses(toAddresses);
    //specify return ad (assuming as being sent from server)    
    mail.setReplyTo('XXX@example.com');
    //sender name
    mail.setSenderDisplayName('Mr Apex Tester');
    //Subject Specification
    mail.setSubject('Subjected to Learning');
    //And... the content
    mail.setPlainTextBody('You have just changed your SalesForce contact email from ' + trigger.old[0].Email + ' to ' + trigger.new[0].Email + '. If this was not intentional please log back into Salesforce.com and ammend you details.');

    //if (!results.get(0).isSuccess()){                      
        //System.debug('That didnt really work did it? Reason: ' + results.get(0).getErrors()[0].getMessage());
    }
}

代码中的第一个问题是触发器不是批量的 在这里读一下

下一个问题是您没有使用Messaging.sendEmail发送电子邮件

请尝试以下操作:

更新后在联系人上触发Test1{ Messaging.reserveSingleEmailCapacitytrigger.size; 列表电子邮件=新列表; 对于联系人c:trigger.new{//遍历所有已处理的记录 Contact old=trigger.oldMap.getc.Id;//从oldMap获取旧记录 如果old.Email!=c.Email{//检查当前电子邮件 Messaging.SingleEmailMessage email=新建Messaging.SingleEmailMessage; email.setToAddress新字符串[]{c.email};; email.setReplyTo'XXX@example.com'; 电子邮件.setSenderDisplayName'Mr Apex Tester'; 电子邮件。设置主题“受学习影响”; email.setPlainTextBody'您刚刚将SalesForce联系人电子邮件从'+ 旧的.电子邮件+'到'+c.电子邮件+ “。如果这不是故意的,请重新登录Salesforce.com并提供详细信息。”; 电子邮件。电子邮件; } } 发送电子邮件; }
代码中的第一个问题是触发器不是批量的 在这里读一下

下一个问题是您没有使用Messaging.sendEmail发送电子邮件

请尝试以下操作:

更新后在联系人上触发Test1{ Messaging.reserveSingleEmailCapacitytrigger.size; 列表电子邮件=新列表; 对于联系人c:trigger.new{//遍历所有已处理的记录 Contact old=trigger.oldMap.getc.Id;//从oldMap获取旧记录 如果old.Email!=c.Email{//检查当前电子邮件 Messaging.SingleEmailMessage email=新建Messaging.SingleEmailMessage; email.setToAddress新字符串[]{c.email};; email.setReplyTo'XXX@example.com'; 电子邮件.setSenderDisplayName'Mr Apex Tester'; 电子邮件。设置主题“受学习影响”; email.setPlainTextBody'您刚刚将SalesForce联系人电子邮件从'+ 旧的.电子邮件+'到'+c.电子邮件+ “。如果这不是故意的,请重新登录Salesforce.com并提供详细信息。”; 电子邮件。电子邮件; } } 发送电子邮件; }
今天早上我会试一试的,谢谢。这就是问题所在,我刚从大学毕业,在我的第一份与行业相关的工作中。我正在学习apex,但在学习的最深处。我很惊讶在我的职业生涯中,我从大学学到的东西是如此之少。我想我刚刚花了2万英镑来扩大我的学习能力,并加快学习速度。关于生活的故事,很抱歉,谢谢你的帮助。@Phil不客气,大学只是教你如何学习,极大地开阔了你的视野,这是很正常的。在大学里,你有机会用各种各样的技术进行实验,你也有机会选择你真正想要的技术。当你从大学进入工业界时,没人指望你是专家。因此,不要停止学习,因为软件开发人员的职业生涯是一个无限的学习和新的东西。祝你好运今天早上我会试一试的,谢谢。这就是问题所在,我刚从大学毕业,在我的第一份与行业相关的工作中。我正在学习apex,但在学习的最深处。我很惊讶在我的职业生涯中,我从大学学到的东西是如此之少。我想我刚刚花了2万英镑来扩大我的学习能力,并加快学习速度。关于生活的故事,很抱歉,谢谢你的帮助。@Phil不客气,大学只是教你如何学习,极大地开阔了你的视野,这是很正常的。在大学里,你有机会用各种各样的技术进行实验,你也有机会选择你真正想要的技术。当你从大学进入工业界时,没人指望你是专家。因此,不要停止学习,因为软件开发人员的职业生涯是一个无限的学习和新的东西。祝你好运