1

我有这个网站的问题,它没有发送任何电子邮件。基本上,当有人下订单时,它会发送一封确认电子邮件。我没有看到代码有任何问题,但我相信这是寻找问题的正确位置。有人能帮助我吗?

<cfquery name="getUser" datasource="personal2009">
SELECT * FROM site_users WHERE id = '#session.id#'
</cfquery>

<cfoutput>
    <cfmail to="#site_email#" from="#site_email#" subject="Website International Order Request">
    #getUser.title# #getUser.Firstname# #getUser.Surname# has requested to deliver an order to an international address.

    Their contact details are:
    #getUser.Address1#
    #getUser.Address2#
    #getUser.Town#
    #getUser.Postcode#
    #getUser.Country#

    #getUser.Tel#
    #getUser.email#

    The delivery address requested is:
    #formtitle# #formFirstname# #formSurname#
    #formAddress1#
    #formAddress2#
    #formTown#
    #formPostcode#

    The order details are:
    <cfset thisrow = 0><cfoutput><cfset thisrow = thisrow + 1><cfset tot = 0><cfloop index="list" from="1" to="#session.numincart#"><CFQUERY NAME="ind" DATASOURCE="personal2009" maxrows=1>SELECT * FROM products WHERE id = #listgetat(session.cart, list)#</CFQUERY>
    Product Name: #ind.product_name#
    Price: £#decimalformat(listgetat(session.price, list))#<cfset multiply2 = #listgetat(session.quant, list)#>
    Quantity: #listgetat(session.quant, list)#

    </cfloop></cfoutput>
    Thank you

    </cfmail>
</cfoutput>
<cfset session.endemail = '1'>
4

1 回答 1

1

根据您的托管环境,我可能会建议将您的 cfmail 标签更改为以下内容:

<cfmail to="#site_email#" from="#site_email#" subject="Website International Order Request" server="#server#" username="#username#" password="#password#">

1) 如果您无权访问 CFADMIN,则无法跟踪您的邮件路径。指定您自己的服务器/用户名/密码将允许您使用自己的 SMTP 服务器发送电子邮件并将其排除在外。

2) 即使您的主机设置了带有 SMTP 默认服务器的 CFMAIL,它们也可能没有正确设置 SMTP 中继。结果是您的邮件通过coldfusion发送但被smtp服务器拒绝。

3) 即使您的主机有 CFMAIL 设置和 SMTP 中继设置,最后的可能性也可能是接收端的垃圾邮件过滤器。如果您有查看 SPF/域密钥/其他标准的垃圾邮件过滤器,它们也可能会阻止电子邮件。

指定您自己的服务器/用户名/密码通常是解决电子邮件问题的最佳选择。

于 2013-05-29T17:23:32.790 回答