- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过创建一个触发器来解决基于“邮箱已满”的邮件退回问题,该触发器在邮件包含“邮箱已满”时重新发送邮件。
我面临的问题是我需要将重新发送的次数限制为 3 次。
一旦收到退回的电子邮件,我现在就会不断重新发送电子邮件。
我的触发器是
trigger trgBouncedEmails on EmailMessage (after insert) {
for(EmailMessage myEmail: trigger.New) {
//mail box full bounced email
if (myEmail.HtmlBody.contains('full'))
{
Case[] parentCase = [Select c.Id from Case c where c.Id =: myEmail.ParentId];
if (myEmail.Subject.contains('Financial Review'))
parentCase[0].Resend_Email_Send__c = true; // this will trigger a workflow to send the email again.
Update parentCase;
}
}
}
最佳答案
@grigriforce 击败了我 - 我还建议使用字段来计算重试次数,而不是简单的 bool 值。这是一个“批量化”触发器,其逻辑与您发布的逻辑基本相同:
trigger trgBouncedEmails on EmailMessage (after insert) {
List<Id> parentCaseIds = new List<Id>();
for ( EmailMessage myEmail : trigger.New ) {
// mail box full bounced email for Financial Review emails
if ( myEmail.HtmlBody.contains('full') && myEmail.Subject.contains('Financial Review') )
parentCaseIds.add(myEmail.ParentId);
}
Case[] parentCases = [select c.Id from Case c where c.Id in :parentCaseIds];
for ( Case c : parentCases ) {
c.Resend_Email_Count__c += 1; // this will trigger workflow to send the email again
c.Resend_Email_Time__c = System.now(); // keep track of when it was last retried
}
update parentCases;
}
Resend_Email_Time__c
以来已经过去了 8 小时最后设置,然后安排 Apex 作业每小时运行一次,以挑选需要重新发送电子邮件的符合条件的案例,并调用更新以确保工作流程不会在没有触发的情况下持续太长时间:
global class ResendCaseEmails implements Schedulable {
global void execute(SchedulableContext sc) {
Contact[] cs = [select id, Resend_Email_Count__c, Resend_Email_Time__c from Contact where Resend_Email_Count__c < 4];
List<Contact> ups = new List<Contact>();
for ( Contact c : cs ) {
if ( c.Resend_Email_Time__c != null && c.Resend_Email_Time__c.addHours(8) < System.now() )
ups.add(c);
}
update ups;
}
}
ResendCaseEmails
调用的另一个类中。类。
ResendCaseEmails sched = new ResendCaseEmails();
String cron = '0 0 * * * ?';
System.schedule('Resend Case Email Job', cron, sched);
关于salesforce - 使用 Salesforce 触发器退回电子邮件处理邮箱已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11671856/
我编写了一个函数来包含两个 DateTime 之间的小时列表。 但最后它看起来并不是很容易阅读,这让我想对它进行单元测试,即使我正在从事的项目根本没有进行单元测试。 所以我的问题是,是否有一种更易读或
我一定是漏掉了什么,因为我还没有在网上找到这个非常基本的问题的答案。我正在使用能够容纳三个 int 的缓冲 channel 值。 然后我使用三个 goroutine 来填充它,一旦缓冲 channel
我发现如果一个矩阵(几乎)满了,那么将它存储在稀疏中会导致(更多)更多的计算时间。 虽然以稀疏形式存储完整矩阵是微不足道的,但我只想知道这一事实背后的原因。 我的推测是稀疏索引读取将是计算时间的主要贡
root@root:~# sudo du -ch --max-depth=1 --exclude=/home/ / du: cannot access ‘/sys/kernel/slab/L2TP/I
基本上我想创建一个 UIProgressView 在 3 秒内从 0.0(空)到 1.0(满)。有人能指出我在 swift 中使用 NSTimer 与 UIProgressView 的正确方向吗? 最
我是一名优秀的程序员,十分优秀!