我在使用本网站时遇到问题,但是没有发送任何电子邮件。基本上当有人下订单时,它会发送一封确认电子邮件。我没有看到代码有任何问题,但我相信这是寻找问题的正确位置。有人可以帮助我吗?
<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'>
答案 0 :(得分: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中继设置,最后一种可能是接收端的SPAM过滤器。如果你有垃圾邮件过滤器查看SPF /域密钥/其他标准,他们也可能阻止电子邮件。
指定您自己的服务器/用户名/密码通常是解决电子邮件问题的最佳选择。