邮件配置及发送失败的解决方案

目录

PESCMS系列软件都基本配备了邮件通知功能。考虑到不是所有人都会搭建邮件服务器,PESCMS系列软件都以smtp形式发送的。所以要使用PESCMS的邮件通知功能,您需要确保您手头的邮箱账号支持smtp发送。下面我整理了一下常用邮箱的SMTP帮助文档:

腾讯邮箱:http://service.exmail.qq.com/cgi-bin/help?subtype=1&&no=1001254&&id=28 

网易邮箱:http://help.163.com/09/1223/14/5R7P3QI100753VB8.html 

阿里云邮:http://mailhelp.aliyun.com/freemail/detail.vm?knoId=5869705 

Gmail: https://support.google.com/a/answer/176600?hl=zh-Hans 

邮件触发模式

邮件触发模式有三种选择,分别为:被动模式、定时触发、两者兼有。

被动模式:顾名思义即只有用户访问程序的时候,程序会检查是否存在待发送的邮件。有则执行发送邮件动作。 

定时触发:即利用系统的定时器(WIN系统为计划任务,Linux为:Cron)操作邮件发送。选用此方式需要使用者掌握一定的操作系统维护经验。

在某些PESCMS旧版中,定时触发邮件位于:Expand/Cli/SendMail.php中。

而在新版起,将会统一为:Expand/Cli/SendNotice.php。

两者兼有:将被动和定时结合起来。满足大家即需要实时发送和定时发送的需求。

邮件发送失败常见问题

问:邮件发送不了。如何解决?

答:请确认您的发送账号是否已经开启 smtp协议。若已开启,请参照下方参数逐一排查。

  1. 邮箱发送端口依次设置为 25、587尝试。

  2. 检查服务器是否屏蔽了上述端口

  3. 检查当前PHP环境是否安装了 curl、openssl扩展。

  4. 安装邮箱客户端软件,如Foxmail,尝试使用当前账号进行发送邮件。确保账号无误。

问:已经确保邮箱账号能够发送,但程序依旧发送不了。

答:定位到 Expand/Notice/Mail.class.php。在$this->PHPMailer->isSMTP(); 下起一行添加如下代码

$this->PHPMailer->SMTPDebug = 2;

上述操作为开启PHPMailer库的调试模式。执行程序邮件发送动作。观察程序返回的错误,进行排查。

问:调试模式返回“stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:”

答:解决方法请参考http://stackoverflow.com/questions/26827192/phpmailer-ssl3-get-server-certificatecertificate-verify-failed 

测试邮件发送

部分PESCMS系列软件 在系统设置中(即您填写邮件服务信息的地方),已经添加专门用于测试邮件发送的功能。如下图所示:

1530166674833592.png

若您的邮件配置信息填写正确,但是一直发送失败,请使用此功能进行调试分析。在测试邮件过程,系统会将发送邮件的详细过程打印出来,您可以依据打印出来的信息查找解决失败的原因。

常见邮件服务商地址

  1. 网易:
    smtp.163.com
    smtp.126.com

  2. 腾讯:
    smtp.qq.com

  3. 阿里云:
    smtp.mxhichina.com

  4. 新浪:
    smtp.sina.com

  5. 搜狐
    mail.sohu.net

  6. 谷歌:
    smtp.gmail.com

其他的邮件服务商请自行咨询服务商。

PESCMS DOC 文档系统
© Copyright 2015-2020. by the PESCMS DOC
耗时0.018秒