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又支持多线程。像邮件发送这样的操作所用的时间和当时的网络状况有直
接的关系,快则几秒,慢则几分钟……。所以邮件发送这样的操作是不会包含在程序的主线程里,而是一个独立线程。因为是两个线程,所以上面程序的执行就不具有严格的先后性了,一般前者的执行时间相对比较长,所以绝大部分情况下是附件还没有发送出去就被删除了,当然不可能收到附件。
解决办法:等几分钟再删除文件,给发送操作足够的时间。