1. 郵件發送時,有個很容易被忽視的問題.一般的SMTP 服務器地址和用戶名以及密碼一般都不會出現錯誤,就是有錯也會很快被發現.所以這三個問題只要是稍有經驗都不會有太大的問題.但是我們很少去注意發送地址的有效性,比如:一般新項目的站點Email都是項目名@*.com。但這個郵件地址在項目上線初期還不存在,要是用這個EMAIL地址作爲發送地址,是收不到郵件的。不管SMTP的服務器、用戶名和密碼是否正確。
解決辦法:採用存在的Email地址.
2. 在發送郵件附件不成功時,也有個問題很難被發現。一般這樣的程序都是下面的形式。
<cfmail to=* from=* subject =* server=* username=* password=*>
……
<cfmailParam file=”filepath”>
……
</cfmail>
<cffile action=”delete” file=”filepath” >
從程序看來好像不會出問題,先發送然後再把發送後的文件刪除。雖然,程序是順
序執行的,但並不總是上面的先執行完下面的再執行,ColdFusion 是基於Java 的。
而Java又支持多線程。像郵件發送這樣的操作所用的時間和當時的網絡狀況有直
接的關係,快則幾秒,慢則幾分鐘……。所以郵件發送這樣的操作是不會包含在程序的主線程裏,而是一個獨立線程。因爲是兩個線程,所以上面程序的執行就不具有嚴格的先後性了,一般前者的執行時間相對比較長,所以絕大部分情況下是附件還沒有發送出去就被刪除了,當然不可能收到附件。
解決辦法:等幾分鐘再刪除文件,給發送操作足夠的時間。