2012-11-20 54 views
5

我有两个客户端在我托管的同一台服务器上,都通过sendgrid.com发送电子邮件(都有自己的帐户)。Coldfusion CFMAIL和sendgrid

我在查看关于sendgrid的报告,并注意到“客户端1”的类别显示在“客户端2”的报告中。

我在sendgrid上花了大量时间在电话上,他们告诉我一批3000个“客户端1”中的少量电子邮件65显示为通过“客户端2”的认证用户发送。

在我的脚本中,我使用了coldfusion cfmail,并且为该客户端指定了SMTP地址,用户名和密码。

一个可能的理论考虑到管理员邮件中的“维护与邮件服务器的连接”复选框。 “

”选中此复选框可在传递邮件后保持与邮件服务器的连接处于打开状态(推荐)。“

如果两个客户端都同时发送电子邮件(很可能),那么coldfusion邮件假脱机引擎会根据服务器/用户名和密码将它们分开,或者将它们全部发送到当前打开的邮件服务器?

如果我取消选中与邮件服务器的维护连接复选框......资源的缺点是什么?我的客户整天都会发送新闻通讯和交易电子邮件,大概每个客户10K。

+0

我可能有一个工作要尝试。如果我在我的一个域中为sendgrid.mydomain.com创建了一个cname别名,并在我的代码中更改了我的服务器地址,我希望coldfusion认为它是一个不同的服务器,并为该域打开一个单独的连接,这样邮件就不会混淆。 – steve

回答

2

我最终修改了我的服务器中的DNS设置,添加了一个指向smtp地址的cname,smtp.sendgrid.net。然后,我更新了我的代码以使用新的服务器名称,这似乎是分离连接。

+0

从CF11开始,更新7现在应该是固定的。 – steve

4

我不知道您正在运行的是ColdFusion的哪个版本,但在ColdFusion 9中增加了一项新功能,允许您在Application.cfc文件中指定SMTP服务器设置。假设你有两个单独的Application.cfc文件,那么这可能适用于你。

Here is a reference to the new feature in ColdFusion 9

下面是从引用的页面中的文本。

问题
如何使用在ColdFusion服务器托管发送电子邮件应用程序不同的SMTP服务器设置。

解决方案
通过使用的Application.cfc文件中的新的ColdFusion 9“smtpServersettings”功能,我们可以为应用程序指定不同的SMTP服务器设置。

详细解释
的ColdFusion 9添加了新的属性名称为“smtpServersettings”到Application.cfc文件中,我们可以在Application.cfc中指定SMTP服务器设置的详细信息为此范围的“smtpServersettings”属性,它具有三个值,它们是服务器,用户名和密码。

<cfcomponent displayname="CF9ApplicationVariables" output="false"> 

    <cfset this.name = "CF9ApplicationVariables" /> 
    <cfset this.smtpserversettings = { 
          server="mailServerAddress", 
          username="userEamilID", 
          password="userPassword" 
          } /> 
</cfcomponent> 

现在CFMAIL标签将使用服务器的详细信息发送如“smtpServersetting”中的Application.cfc上面提到的邮件,它不会使用在ColdFusion 9管理员指定的服务器值。如果没有使用“smtpServersetting”属性,则CFMail的行为将与正常情况相同。

+0

谢谢,我正在运行CF9,并没有意识到这一点。大多数情况下,我在管理员(即本地SMTP服务器)中使用默认邮件服务器,但在这种情况下,我有两个使用远程SMTP服务器的不同站点(恰好是同一台服务器,但具有不同的用户名和密码)。看起来,当coldfusion保持该服务器的连接打开时,它不检查认证信息是否已更改,并且因为它具有相同的服务器URL而继续使用相同的登录会话。 – steve

+0

为什么它值得我运行CF9,并没有意识到这一点。似乎它可能值得一试。如果您确实尝试过,请将您的结果发回。由于这只允许您指定服务器,用户名和密码,我不确定维护连接设置(或任何其他管理设置)将如何发挥作用。 –

+0

对查询使用cfmail时,coldfusion会生成一堆传出消息并将其放入spool文件夹中。然后,Coldfusion邮件假脱机程序会提取每封邮件并检查它。如果没有定义特殊的邮件服务器,它会通过默认的邮件服务器传送它。如果您指定一个备用邮件服务器,它将创建一个到它的连接。如果您在管理员中保留“维护连接”复选框,而不是为每条消息记录一次,它将通过连接发送多条消息。但是,在我的情况下,我使用1个服务器与多个用户名和... – steve