通过一个连接通过cfmail发送邮件

时间:2012-12-08 01:07:41

标签: coldfusion smtp coldfusion-9 cfmail

我遇到了一个问题,我的邮件服务器每5分钟只接受100个与服务器的连接。我当前的代码遍历我的数据库,为列表中的每个人调用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#">

我甚至不确定如何测试这个而不发送几百封电子邮件。如果这是解决这个问题的可行办法,有什么想法吗?

感谢您的帮助! 脆饼

2 个答案:

答案 0 :(得分:1)

我最终通过使用计划任务将文件每隔5分钟从Undelivr目录移回Spool目录来进行攻击。我对此解决方案并不感到兴奋,但它确实有效。

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

答案 1 :(得分:0)

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