gpt4 book ai didi

multithreading - coldfusion 11后台处理程序和cfmail线程

转载 作者:行者123 更新时间:2023-12-03 12:52:01 25 4
gpt4 key购买 nike

当前场景:
例如,将cfmail标记与查询一起使用。

<cfmail   
query="qName"
to="#tomailvar#"
from="#frommailvar#>"
subject="#subjectvar#"
type="html"
server="smtp.sendgrid.net"
timeout="360"
username="#myuservar#"
password="#mypwdvar#"
>

我该如何在cfmail标记或当前代码中进行线程?

我有客户,他们又一次将近40k的相片发送出去了。
我给客户提供了多个帐户,有时他们会同时向两个或三个用户发送40k + 40k +电子邮件。

有没有一种方法可以计数假脱机程序文件夹中的邮件并用我的查询总数进行验证?

what is the right way to handle this much emails?

最佳答案

您正在使用哪个版本的ColdFusion?我很惊讶您没有遇到超时问题。从ColdFusion 6开始,我们一直将HTML,TEXT和电子邮件列表保存到单独的数据库中,然后对数据进行后台任务循环并以较小的批量发送。

您是否考虑过使用交易电子邮件服务?我们最近从Mandrill(因为他们将其滚动到MailChimp)切换到了SparkPost(免费套餐= 100,000邮件/月)。这种类型的服务将为您提供最佳的统计信息和跳出/读取/点击检测(使用CFHTTP发送40k消息大约需要2秒钟。)您还可以在发送的帐户中加入“标签”,这样您就可以跟踪或为每个客户设置单独的帐户。 (注意:如果您使用SMTP API,请确保为每个SMTP客户设置唯一的DNS CNAMES,否则ColdFusion可能会使用现有的经过身份验证的连接,并使用错误的SMTP帐户发送邮件。)

除了SMTP连接(一次只发送一条消息)之外,还提供了REST API,使您可以生成和发布单个JSON数据包,其中包含HTML/TEXT模板,电子邮件列表,替换参数,广告系列ID,标签,可选 header 等。我更喜欢通过这些服务进行发送,因为它不会导致我的IP被列入黑名单,也不会导致时间敏感消息的传递延迟。

这是各种交易电子邮件提供商的比较表。

http://socialcompare.com/en/comparison/transactional-emailing-providers-mailjet-sendgrid-critsend

这是使用SparkPost的示例REST API调用。 (我之所以提供此功能,是因为几乎没有第三方服务为CFML提供代码示例。)

<cfscript>
APIKey = "abc123";
/* Generate Message Object */
messageObject = {
"campaign_id" = "Test1234",
"options" = {
"open_tracking" = Javacast("boolean", true),
"click_tracking" = Javacast("boolean", true)
},
"recipients" = [
{"address" = {"email" = "user1@email.com", "name"="User 1 Name"}, "substitution_data"= {"fullname"="Mr. User 1"}},
{"address" = {"email" = "user2@email.com", "name"="User 2 Name"}, "substitution_data"= {"fullname"="Ms. User 2"}},
],
"content" = {
"tags" = ["testing", "demo"],
"from" = {"email"="my@email.com", "name"="My Name"},
"subject" = "Oh hey {{fullname}} (#Request.DateTimeFormat(StartTime,'m/d/yyyy')#)",
"html" = "<b>Testing REST API {{fullname}}</b><br><br>Sending email using a transactional email service.",
"text" = "Testing REST API {{fullname}} - Sending email using a transactional email service.",
"headers" = {
"X-CUSTOM-HEADER" = "foo bar"
}
}
};
/* Recommend using JSONUtil for proper casting of boolean values */
JSONUtil = CreateObject("component","JSONUtil");
MessageJSON = JSONUtil.Serialize(var=messageObject, strictMapping=true);
</cfscript>

<cfhttp url="https://api.sparkpost.com/api/v1/transmission" method="post" result="httpResp" timeout="60" getasbinary="never">
<cfhttpparam type="header" name="Content-Type" value="application/json">
<cfhttpparam type="header" name="Authorization" value="#APIKey#">
<cfhttpparam type="body" value="#MessageJSON#">
</cfhttp>

<CFDUMP VAR="#httpResp#">

关于multithreading - coldfusion 11后台处理程序和cfmail线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35859777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com