< 返回首页

标哥的笔记,是记录在日常学习技术和日常开发中那些年遇到过的坑!本站为新站,原"标哥的技术博客"中的文章会慢慢移到本站,欢迎收藏本站!
在使用本站过程中,有任何建议请联系标哥! 另,承接App开发、网站开发和微信小程序开发!欢迎联系我们


PHPMailer配置163邮箱发送邮件

 作者:标哥    发布日期:2017-04-26 23:55    阅读量:784次
 

今天开发的功能中,需要实现发送邮件通知提醒,而PHP端使用的是PHPMailer这个第三方库来实现的,发送者邮件使用的是网易的163邮箱,但是在调试的时候遇到了问题,那就是一直报没有权限。最后才明白原因,原来是这个163邮箱并没有开启有授权码,如果没有开启,则不能在第三方邮件客户端使用。

开启POP3服务

  1. 如下图所示,登录到163邮箱,然后看到设置选项,点击它,就会弹出如下的页面,然后点击圈出来的菜单项:

标哥的笔记

  1. 然后进入到此页面,这里的截图是已经开启完成了的,开启完成前,是灰色的选项,点击的时候会弹出设置授权码,只有设置了授权码,才能开启。

标哥的笔记

  1. 设置授权码完成后,就真正地开启了POP3服务了,到此,邮件端处理完毕了。

标哥的笔记

实现PHPMailer发邮件

function send_mail($to = '', $name = '', $subject = '', $body = '', $attachment = null)
{
    $config = config('mail');
    // dump($config);exit;

    $url = vendor("phpmailer.phpmailer.PHPMailerAutoload");

    $mail = new PHPMailer();
    $mail->CharSet = 'UTF-8';
    $mail->IsSMTP();
    $mail->SMTPDebug = 0;
     $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl';
    // 163邮箱是smtp.163.com
    $mail->Host = $config['smtp_host'];
    // 465端口
    $mail->Port = $config['smtp_port'];
    // 上面所开通POP3服务的163邮箱账号
    $mail->Username = $config['smtp_user'];
    // 上面所设置的授权码
    $mail->Password = $config['smtp_password'];
    $mail->SetFrom($config['from'], $config['from_name']);

    $replyEmail = $config['from'];
    $replyName  = $config['from_name'];
    $mail->AddReplyTo($replyEmail, $replyName);

    $mail->Subject = $subject;
    $mail->MsgHTML($body);
    $mail->AddAddress($to, $name);
    // 抄送
    if ($config['chaoxong_email']) {
        $mail->addCC($config['chaoxong_email']);
    }

    // 添加附件
    if (is_array($attachment)) {
        foreach ($attachment as $file) {
            is_file($file) && $mail->AddAttachment($file);
        }
    }

    return $mail->Send() ? true : $mail->ErrorInfo;
}

注意事项

填写smtp_password时一定要注意,如果是163邮箱,一定要填写授权码;如果是阿里企业邮箱,填写的是登录账号的密码。


承接:ThinkPHP项目开发、网站项目开发、微信项目开发、微信小程序项目开发、App开发,欢迎联系标哥QQ632840804