阿里云服务器邮件发送失败问题

一、问题

更换服务器之后,发送邮件功能失效了,报“SMTP Error:Could not connect to SMTP host”的错误。原来的服务器是可以的,我是用的PHPMailer,SMTP方式发送邮件的。

二、排查过程

首先PHP要开启sockets拓展,查了一下phpinfo页面,是开启的:

看了一下openssl也是开启(因为拿了qq邮箱来测),所以没问题:

那就再看一下allow_url_fopen,开启的,没问题:

是不是禁用了函数?没有禁用,没问题:

那配置上就没有问题了,我就想,是不是端口被占用了?

运行一下:netstat -tnlp

第一条就是这玩意:

25端口被占用,被一个叫master的玩意占了。

既然25端口不可用,于是我想,是否可以尝试一下其它端口,用465端口试试。

465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。

465端口似乎看起来还更好,直接就开始尝试了

<?php

header("content-type:text/html;charset=utf-8");

require 'PHPMailer/class.phpmailer.php';

try {

$mail = new PHPMailer(true); $mail->IsSMTP();

$mail->CharSet='UTF-8';

$mail->SMTPAuth = true;

$mail->SMTPSecure = 'ssl';

$mail->Port = 465;

$mail->Host = 'smtp.mxhichina.com';//邮箱smtp地址

$mail->Username = 'gzp@gzpblog.com';//你的邮箱账号

$mail->Password = '扒拉扒拉。。。';//你的邮箱密码

$mail->From = 'gzp@gzpblog.com';//你的邮箱账号

$mail->FromName = '锅子';

$to = "扒拉扒拉@qq.com";

$mail->AddAddress($to);

$mail->Subject = "test";

$mail->Body = 'hello!';

$mail->WordWrap = 80;

//$mail->AddAttachment("f:/test.png"); //可以添加附件

$mail->IsHTML(true);

$mail->Send();

echo "success!";

} catch (phpmailerException $e) {

echo "邮件发送失败:".$e->errorMessage();

}

执行,成功!右下角弹出了QQ邮件的提醒。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值