提问者:小点点

Coldfusion CFMAIL 和 sendgrid


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

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

我花了很多时间在与sendgrid的电话上,他们告诉我,“客户端1”的一批3000电子邮件中的少数电子邮件65显示为通过“客户端2”的经过身份验证的用户发送。

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

一种可能的理论考虑了管理员中邮件下的“保持与邮件服务器的连接”复选框。

“选中此复选框可使与邮件服务器的连接保持打开状态,以便在传递邮件后重复使用(推荐)。

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

如果我取消选中保持与邮件服务器的连接复选框...资源的缺点是什么?我的客户整天发送时事通讯和交易电子邮件,每个客户可能大约 10k。


共2个答案

匿名用户

我不知道您运行的是哪个版本的 ColdFusion,但在 ColdFusion 9 中添加了一项新功能,允许您在 Application.cfc 文件中指定 SMTP 服务器设置。假设您的 2 个站点有单独的 Application.cfc 文件,那么也许这对您有用。

以下是对 ColdFusion 9 中新功能的引用

这是该引用页面中的文本。

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

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


详细说明 ColdFusion 9 在 Application.cfc 文件中添加了一个名为“smtpServersettings”的新属性。我们可以在Application.cfc中将SMTP服务器设置详细信息指定为此范围的“smtpServersettings”属性,该属性采用三个值,它们是服务器,用户名和密码作为结构。

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

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

现在,CFMail 标记将使用服务器详细信息来发送邮件,如上述 Application.cfc 中的“smtpServersetting”中所述,并且不会使用 ColdFusion 9 管理器中指定的服务器值。如果未使用“smtpServersetting”属性,则CFMail将正常运行。

匿名用户

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