阿里云服务器使用SMTP发送邮件

前言

在阿里云上买了一个轻量应用服务器,之所以选择这个是因为该类型的服务器可以在购买时配置开发环境,而且价格比较便宜。将网站在本地搭好上传到云上时,发现原本可以运行的邮件发送功能失效了。折腾了将近一天之后,才发现问题所在,这里记录一下。

官方教程

阿里云在帮助中提供了SMTP发邮件的示例程序,各个语言的版本都有,很全面:

阿里云服务器使用SMTP发送邮件_第1张图片
image.png

其中PHP的代码如下:

debug    = false;
$smtp->sendmail($mailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);

在使用时我将官方给出的PHP的代码复制进去,运行时还是出错(访问smtp服务器超时)。后来查了各种资料才发现阿里云出于安全的考虑,将25号端口关闭了(教程给的就是25号端口)。实际中使用SSL协议,对应SMTP端口就是465,将端口改掉,同时在smtp服务器地址前加ssl://即可:

$smtpserver     = "ssl://smtpdm.aliyun.com";
$smtpserverport = 465;

实例代码

实际中网站使用PHPMail进行邮件的发送。代码如下:

电话邮箱: ".$send_phone."
用途: ".$send_theme."
风格: ".$send_kind."
内容: ".$_POST['content'];//邮件内容 /// //设置smtp参数 $mail->IsSMTP(); $mail->SMTPAuth=true; $mail->SMTPKeepAlive=true; $mail->Host="ssl://smtp.163.com"; $mail->Port=465; //填写你的email账号和密码 $mail->Username="****@163.com"; $mail->Password="****";#注意这里要填写授权码就是我在上面网易邮箱开启SMTP中提到的,不能填邮箱登录的密码哦。 //设置发送方,最好不要伪造地址 $mail->From="***@163.com"; $mail->FromName="***";//发送者用户名 $mail->Subject="****";//邮件标题 $mail->AltBody=$mailcontent; //邮件内容 $mail->WordWrap=50; // set word wrap $mail->MsgHTML($mailcontent); //设置回复地址 $mail->AddReplyTo("****@163.com","***"); //设置邮件接收方的邮箱和姓名 $mail->AddAddress("***@qq.com","**");//接收者邮箱和用户名 //使用HTML格式发送邮件 $mail->IsHTML(true); //通过Send方法发送邮件 //根据发送结果做相应处理 if(!$mail->Send()){ //echo "Mailer Error:".$mail->ErrorInfo; echo ""; echo ""; exit; exit(); }else{ echo ""; echo ""; exit; } ?>

点击下载class.phpmailer.phpclass.smtp.php文件。(提取密码为:x6at)
前端代码为:


后记

被官方教程给坑了一下(╯︵╰),下次要注意。这里Mark一下( ̄▽ ̄)/。

附另一种smtp邮件发送方法:php利用smtp类轻松的发送电子邮件,该方法没有在阿里云服务器测试,不过本地测试通过(PHP高于5.3使用时会有问题)。

你可能感兴趣的:(阿里云服务器使用SMTP发送邮件)