迁离SAE系列:邮件服务篇
一,前言:
新浪云计算平台SAE更改了计费策略后,新的计费策略使得网站运行的成本越来越高,于是很多开发者包括本人都准备把应用和网站迁离SAE平台了。然而SAE平台跟普通PHP环境始终有区别。特别是当你的应用使用到SAE的一些云服务的时候,此时要迁移就必须改动下代码。本人将整理下自己迁离的一些经验,分享出来,希望对需要的人有帮助。
二,需求分析
有时候,我们需要想用户发送邮件。如注册邮箱验证、审核结果邮件等。如果是需要群发大量邮件,我更建议使用sendcloud。然而我在这里只讨论小型网站发少量邮件的问题。SAE平台本身带有mail服务,开发者使用SAE的mail Api来发送邮件也蛮方便。当我们迁移网站到普通PHP环境时,可考虑用其他替代品。
三、主要思路
SAE的mail服务是通过SMTP发送邮件的,因此我们只需要利用PHPMailer来取代mail服务即可
四、操作方法
1.下载地址 http://sourceforge.net/projects/phpmailer/ 2.申请一个支持SMTP的邮箱 很多邮箱都支持SMTP,如QQ,Sina,163等等。我以前是用gmail的,因为gmail的稳定性是秒杀所有国内邮箱的。然而gmail被墙了后,我只好寻找国内替代品。经测试,发现Sina邮箱的邮件发送成功率蛮高的,所有我在此推荐Sina邮箱。为了安全着想,建议新申请一个专门用于发邮件的邮箱账号。具体如何申请邮箱,此处不多费口舌。但得注意,很多邮箱申请了后,需要在后台面板手动开通SMTP才能使用SMTP服务。 3.使用代码示例 假设我们需要经常发送系统邮件(如验证邮件等),则可以将此动作封装成一个公共函数。下面是一个发送系统邮件的函数示例
function send_system_email($email, $title ,$content){
include_once('PHPMailer/PHPMailerAutoload.php'); //包含PHPMailer的自动加载文件
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.sina.com'; // SMTP 服务器地址
$mail->SMTPAuth = true; //启用SMTP认证
$mail->Username = '****mmyway@sina.com'; //邮箱名
$mail->Password = '*****'; // 密码
$mail->SMTPSecure = 'tls';
$mail->Port = 587; // 端口
$mail->From = '****mmyway@sina.com'; //显示的发件人
$mail->FromName = '通知提醒'; //显示的标题
$mail->addAddress($email); //设置发送目标邮箱地址
//$mail->addAttachment('/var/tmp/file.tar.gz'); // 如有附件,可添加
$mail->isHTML(true); // 邮件支持HTML格式内容
$mail->Subject = $title ;
$mail->Body = $content;
$mail->AltBody = $content;
$result = $mail->send();
if(!$result) {
//echo 'Message could not be sent.';
//echo 'Mailer Error: ' . $mail->ErrorInfo;
return false;
} else {
//echo 'Message has been sent';
return true;
}
}
如无特殊说明,本站皆为原创。转载请注明来自第七星尘的独立博客的《迁离SAE系列:邮件服务篇》
2015-11-05
迁离SAE系列
顶你!辛苦了~
看后感悟了点,收下了