2012-12-08 61 views
4

我遇到了一个问题,即我的邮件服务器每5分钟只接受100个到服务器的连接。我目前的代码遍历数据库,为列表中的每个人调用cfmail。我想问题是我每次使用cfmail时都会打开一个新连接?通过一个连接通过cfmail发送邮件

<CFLOOP QUERY="Customer" > 

    <!---send mail to Admin -----> 
    <cfmail to = "#cstEmail#" 
     from = "#FORM.fromAddressEmail#" 
     subject = "#FORM.subjectEmail#" 
     server = "#var.mailserver#" 
     port= "#var.mailport#" 
     username="#var.mailuser#" 
     password="#var.mailpass#" 
     failto="#var.failEmail# 
     type="html"   
     > 

我跑进只100邮件都在同一时间被发送,其余均发送到CF的未交付的文件夹中。我会把它们发送到假脱机程序,再次100将通过..

现在,我读过旧版本的CF有一个复选框在CF管理员“维护连接” - 我运行CF9和没有看到这个选项。

会使用CFMAIL的查询属性,力CFMAIL仅连接到邮件服务器一次发送的所有电子邮件?

<cfmail query="Customer" 
from = "#FORM.fromAddressEmail#" 
to = "#cstEmail#" 
subject = "#FORM.subjectEmail#"> 

林甚至不知道如何测试这个没有发送几百封电子邮件。任何想法,如果这是一个可行的解决方案的问题?

感谢您的帮助! Biscotti

+1

你有什么版本的CF的? –

+0

版本\t 9,0,1,274733 版\t开发 – BiScotti

+0

是您的电子邮件,这样你可以发送相同的邮件给多个收件人?也许把所有收件人放在bcc属性中?您可以将多个收件人添加为逗号分隔列表。 – Goyuix

回答

0

通过使用上述代码在CFMAIL中调用QUERY,我只能成功地加速客户端进程。邮件服务器在第100次连接后仍然拒绝邮件 - 导致我确定这种方法没有服务器端的好处,而只是像我的第一个例子那样简单地循环CFMAIL。我似乎唯一的答案是在cf环境的企业版中运行代码,其中一个启用了“维护连接”功能。

1

我结束了使用计划任务的文件搬过来,每5分钟回从Undelivr DIR后台打印目录妥协。我不喜欢这个解决方案,但它的工作原理。

感谢拉斯的Respooler扩展。 http://cfrespooler.riaforge.org/

+0

此解决方案的另一个问题是,当邮件服务器的假脱机程序瓶颈 - 所有邮件都需要大约一个小时才能完成 - 而且在此期间,我无法通过此服务器发送其他电子邮件! – BiScotti