2013-05-29 47 views
1

我有這個網站的問題,它不發送任何電子郵件。基本上當有人下訂單時,它會發送確認電子郵件。我沒有看到代碼存在任何問題,但我相信這是找到問題的正確地方。有人能幫助我嗎?Coldfusion不發送電子郵件

<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'> 
+1

你確定這是一個代碼問題,而不是電子郵件服務器的問題?如果您不在共享主機上,請進入CF管理員並單擊「服務器設置」下的「郵件」鏈接以確認您的電子郵件設置。不要更改任何設置,點擊「驗證郵件服務器連接」並按「提交更改」。如果一切正常,您應該獲得綠色的「連接驗證成功」。 – Chester

+3

您是否檢查了郵件發送日誌?順便說一句,cfmail有一個內置的cfoutput功能,所以你不需要圍繞它的標籤。 –

+1

你應該做的第一件事是檢查郵件日誌。這應該很快就會告訴你是否存在代碼/配置問題,或者實際上是否發送了郵件,並在下游某處被阻止。 – Shawn

回答

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 /域名密鑰/其他標準,他們也可能會阻止電子郵件。

指定您自己的服務器/用戶名/密碼通常是解決電子郵件問題的最佳選擇。

+0

謝謝!這對我有所幫助,我現在已經處理了你的建議,但我無法訪問電子郵件進行測試,所以我在等待我的朋友告訴我她現在是否收到電子郵件的天氣。 – danrodrigues

相關問題