第七星尘

迁离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系列:邮件服务篇》

评论

  1. 村里一枝花 #1

    顶你!辛苦了~

    回复
    2015-12-2
  2. 妹子等你啦 #2

    看后感悟了点,收下了

    回复
    2015-11-28