阵子刚刚买了个阿里云服务器,在做发送邮件功能时,发现本来在本地测试没问题的功能,在服务器上连接超时。
后来发现是阿里云将25端口禁用了(“坑!当然也有其道理”),大概2016年9月后买的服务器都被禁用。25禁用了,我们就不用它。以163邮箱为例:
网易163免费邮箱相关服务器信息:
我这里用的就是SSL协议端口465,代码如下
- <?php
- header("content-type:text/html;charset=utf-8");
- include("/PHPMailer/class.phpmailer.php");
- include("/PHPMailer/class.smtp.php");
- $mail = new PHPMailer(true);
- $mail->IsSMTP();
- $mail->CharSet=‘UTF-8‘; //设置邮件的字符编码,这很重要,不然中文乱码
- $mail->SMTPAuth = true; //开启认证
- $mail->SMTPSecure = ‘ssl‘;//设置使用ssl加密方式登录鉴权
- $mail->Port = 465;
- $mail->Host = "smtp.163.com";
- $mail->Username = "邮箱名";
- $mail->Password = "授权码";
- //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示
- $mail->AddReplyTo("邮箱名","mckee");//回复地址
- $mail->From = "邮箱名";
- $mail->FromName = "www.phpddt.com";
- $to = "收件人";
- $mail->AddAddress($to);
- $mail->Subject = "本测试标题";
- $mail->Body = "<h1>phpmail演示</h1>这是php点点通(<font color=red>www.phpddt.com</font>)对phpmailer的测试内容";
- $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
- $mail->WordWrap = 80; // 设置每行字符串的长度
- //$mail->AddAttachment("f:/test.png"); //可以添加附件
- $mail->IsHTML(true);
- if(!$mail->Send())
- {
- echo "邮件发送有误 <p>";
- echo "邮件错误信息: " . $mail->ErrorInfo;
- exit;
- }
- else {
- echo "邮件发送成功!<br />";
- }
- ?>
其实也就在配置里加了
$mail->SMTPSecure = ‘ssl‘;//设置使用ssl加密方式登录鉴权
$mail->Port = 465;
java 中配置代码
- postoffice.implementation=ninja.postoffice.commonsmail.PostofficeCommonsmailImpl
- smtp.host=smtp.163.com
- smtp.port=465
- smtp.ssl=true
- smtp.user=tur21i@163.com
- smtp.password=7982e23
- smtp.debug=true
新闻热点
疑难解答
图片精选