thinkphp 阿里云winserver 发送邮件

正常套路

  • 1.下载PHPMailer,放到Library/vendor/下面
  • 2.在common/function.php里添加方法,保证全局调用
  • 3.在config.php添加配置
  • 4.调用方法
/**
 * 邮件发送函数
 */
function sendMail($to, $title, $content) {
    Vendor('PHPMailer.PHPMailerAutoload');
    $mail = new PHPMailer(); //实例化
    $mail->IsSMTP(); // 启用SMTP
    $mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
    $mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
    $mail->Username = C('MAIL_USERNAME'); //你的邮箱名
    $mail->Password = C('MAIL_PASSWORD') ; //邮箱密码
    $mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
    $mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
    $mail->AddAddress($to,"Hello Do You Love ME?");
    $mail->WordWrap = 50; //设置每行字符长度
    $mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
    $mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
    $mail->Subject =$title; //邮件主题
    $mail->Body = $content; //邮件内容
    $mail->SMTPSecure = 'ssl';
    $mail->AltBody = "这是一个纯文本的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
    return($mail->Send());
}
    return array(
    //网站配置信息

    'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称
    'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证
    'MAIL_USERNAME' =>'1111111@163.com',//你的邮箱名
    'MAIL_FROM' =>'1111111@163.com',//发件人地址
    'MAIL_FROMNAME'=>'aaaa',//发件人姓名
    'MAIL_PASSWORD' =>'1111111',//邮箱密码
    'MAIL_CHARSET' =>'utf-8',//设置邮件编码
    'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件
);
    if (sendmail('1111@qq.com','我就是试试','I am a 阿拉丁龙哥!')) {
            $this->success('发送成功!');
        } else {
            $this->error('发送失败');
        }

关于本地测试没问题但是阿里云

这个是目前我遇到了两个原因

  • 1.阿里云的25端口限制。
  • 2.ssl设置-》这个是很容易忽略的一步,因为windows 部分也要配置。我就是在这一步卡了半天。具体方法百度去吧。

随机浏览