phpmailer发送邮件相关记录

一、php环境要求:php配置文件php.ini需要开启OpenSSL  ,sockets

OpenSSL support enabled
Sockets Support enabled

二、邮箱准备工作 

       确保发送者邮箱密码正确,代码编写正确

       例如:smtp.163.com

      163smtp服务器,需要开启SMTP功能,并且设置SMTP授权码,这个授权码就是用来登录你邮箱的密码。发送邮件时候不能用原来的登录密码,得用这个授权码!

 

三、示例

准备好phpmailer类,可以去网上搜下,很多……

示例代码:

//发电子邮件
function sys_send_mail($to,$subject,$message)
{
    //$subject=SYS_ZH_NAME."运维中心";
    try {
        $mail = new PHPMailer(true);
        $mail->IsSMTP();
        $mail->CharSet = 'UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
        $mail->SMTPAuth = true; //开启认证
        $mail->SMTPSecure = 'ssl';
        $mail->Port = 465;
        $mail->Host = MAIL_SMTP;
        $mail->Username = MAIL_USER;
        $mail->Password = MAIL_PWD;
//$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示
        $mail->AddReplyTo(MAIL_USER, "skyo");//回复地址
        $mail->From = MAIL_USER;
        $mail->FromName = SYS_ZH_NAME."运维中心";
        $mail->AddAddress($to);
        $mail->Subject = SYS_ZH_NAME."运维中心".$subject;
        $mail->Body = $message;
        $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
        $mail->WordWrap = 80; // 设置每行字符串的长度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
        $mail->IsHTML(true);
        $mail->Send();
        //echo '邮件已发送';
    } catch (phpmailerException $e) {
        echo "邮件发送失败:".$e->errorMessage();
    }
} 

 配置文件:

define("MAIL_SMTP","smtp.163.com");
define("MAIL_USER","[email protected]");
define("MAIL_PWD","******");//这个是上边你设置的授权码不是邮箱登录密码

错误处理:

1、phpmailer SMTP Error: Could not connect to SMTP host. 

①检查php环境是否开启openssl和sockets

②邮箱用户名密码(授权码)是否有错

③协议及端口是否设置正确

一般情况就是这几种可能……云服务器一般这个邮件服务还需要单独购买

有关于邮箱协议端口号选择:

网易163免费邮箱相关服务器信息:

163åè´¹é®å®¢æ·ç«¯è®¾ç½®çPOP3ãSMTPãIMAPå°å

其他:

猜你喜欢

转载自blog.csdn.net/weixin_43025071/article/details/88838326