看到ecshop官方论坛里有很多关于此问题的提问,刚好有空,测试了一下邮箱服务器设置,163邮箱可以正常发送,gmail不能正常发送,自己修改了一下代码,就可顺利发送邮件,解决如下:
1. 检查php是否支持openssh
首先查看phpinfo,查看看PHP是否支持OpenSSL,看到下面的字样,就标示支持OpenSSL。一般现在的PHP都会默认支持的。
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8b 04 May 2006
2. 修改Discuz!代码
vi includes/cls_smtp.php大概在93行处,
把
$this->connection = @fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout);
修改
$this->connection = @fsockopen('ssl://'.$this->host, $this->port, $errno, $errstr, $this->timeout);
3. 修改Gmail设置
1.登录到您的 Gmail 帐户。
2.点击任一 Gmail 页顶部的设置。
3.点击橙色框邮件设置中的转发和 POP。
4.选择针对所有邮件启用 POP 或者针对从现在起开始接收的邮件启用 POP。
5.使用 POP 访问 Gmail 邮件后,选择您要对邮件采用的处理方式。
4. 配置ecshop邮件设置
登录ecshop后台,在左边导航栏,单击【系统设置】-》邮件服务器设置,在邮件服务选择采用其他的SMTP服务,其他的参考下图设置
ecshop邮箱服务器设置
然后按发送测试邮件,看到如下图代表发送成功
现在就可以到邮箱就收看测试邮件了,
5. 最后验证发送到yahoo,hotmail,163,qq邮箱都能快速收到
参考文件:
原文地址:http://www.lihaixin.com/2008/10/ecshop-support-gmail-409.html