调试了好长时间smtp发信,原来可以用ssl://的方式来连接加密的邮件服务器。转载一篇文章如下:

由于多数邮箱的smtp端口都是25,如果你的服务器不支持25端口,就不能使用smtp发送邮件了,而只能用php发送。但如果遇到国外服务器,php发送邮件容易出现邮件乱码问题。
如果服务器不支持25端口,一般会支持465、587等端口。比如gmail的邮箱就是支持465、587端口。
本人使用过上面所说情况的服务器。我使用wp博客系统,采用gmail邮箱的smtp发送邮件很快而且正常,但是有DZ、UChome系统就不行了。其他邮箱多是25端口,根本不能使用。
我使用php发送邮件,gmail邮箱收到邮件正常,但其他邮箱收到邮件是乱码,用改变字符集无法解决。
为此,我想了许多办法,发了无数求救帖子,得到许多专家的关注,还是找不到解决良策。也想到DZ、UChome的版本、字符等问题,不断更换和试验,还是无策。但最终找到办法解决了,受到网友们的启发,实现了用gmail发送邮件。
其实办法很简单。以gmail邮箱为例:
1、网友说要验证服务器是否支持OpenSSL,我看不一定。我的服务器就不支持。
2、要设置gmail,开放pop、smtp等。
3、在uchome的管理里面,邮件发送方式:选择“通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)”,SMTP 服务器填写为:ssl://smtp.gmail.com ,SMTP 端口填写为:465 。
其余就是把邮箱地址、密码设置正确。确认就OK。
这里最关键的是SMTP服务器一定要设置为“ssl://smtp.gmail.com”而不是“smtp.gmail.com”。
原因是gmail走的是加密的ssl协议,所以前面要加ssl://。
google的企业邮局同样适用。
不过,也有的国外服务器不支持ssl,一般可以使用PHP发送了。