阿里云+php smtp邮件无法发出

虽然之前成功将项目部署到了阿里云上,但是由于环境的不同,依旧会出现一些问题。

现在大部分的服务器都会禁用25端口,因为开启25端口的话会导致垃圾邮件数量的增加,但是我们的项目在本地时通常是利用25端口进行发送的,于是部署到服务器上你就会发现邮件无法发送,查看nginx的错误日志,它也会告诉你,邮件发送超时。

对于这个问题,暂时有两种解决方法,而且服务器文档中也有明确说明

方法一:申请解封

去控制台中申请对25端口进行解封,先点击自己的头像,选择安全管控。

然后找到业务申请中的25端口解封。

最后进行端口解封申请即可,但是这个方法成功率并不高,而且等待时间很久。

方法二:改用ssl加密的465端口发送

在申请25端口解封的时候,你会看到如下提示。

于是我们知道了,可以通过把发送端口改为465的形式,避过25端口被封的问题。

以我自己的项目为例,我是用smtp进行发送的,具体的方法实现,是从网上找了一个封装好的类。

他实例化的对象以及发送方法如下图所示。

$smtp = new Smtp($MailServer, $MailPort, $smtpuser, $smtppass, true);
五个参数分别为发送邮件的邮箱服务器(如email.qq.com),发送端口,发送邮件的邮箱账号,
开启smtp服务时设置的密码,以及是否需要身份验证。

$smtp->sendmail($uemail, $smtpMail, $emailTitle, $emailBody, $mailType);
五个参数分别为目标邮箱,发送邮箱,邮件标题,邮件主体,邮件类型(通常为html)。

主要是对$MailServer,以及¥MailPort两个参数进行了修改

修改前

$MailServer = "smtp服务器";如smtp.email.qq.com
$MailPort = 25;

修改后

$MailServer = "ssl:// 服务器"; 
$MailPort = 465;

这样,就可以在服务器端对邮件进行正常发送了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值