PHPMailer发送邮件

下载PHPMAILER

下载

使用例子


  
header('Content-Type:text/html;Charset=utf-8');  
require 'PHPMailer/PHPMailerAutoload.php';  
$mail = new PHPMailer;  
$mail->isSMTP();                                      // 设置邮件使用SMTP  
$mail->Host = 'smtp.163.com';                     // 邮件服务器地址 ,像qq就用 smtp.qq.com 
$mail->SMTPAuth = true;                               // 启用SMTP身份验证  
$mail->CharSet = "UTF-8";                             // 设置邮件编码  
$mail->setLanguage('zh_cn');                          // 设置错误中文提示  
$mail->Username = '你的邮箱@163.com';              // SMTP 用户名,即个人的邮箱地址 这里和下一行相当于登录 
$mail->Password = 'xxxxxx';                        // SMTP 密码,即个人的邮箱密码  
$mail->SMTPSecure = 'tls';                            // 设置启用加密,注意:必须打开 php_openssl 模块  
$mail->Priority = 3;                                  // 设置邮件优先级 1:高, 3:正常(默认), 5:低  
$mail->From = '发送者邮箱@163.com';                 // 发件人邮箱地址  
$mail->FromName = '我的名字(就是邮件发送方显示的名字,随意填写)';                     // 发件人名称  
$mail->addAddress('我的另一个邮箱@qq.com', '我的名字');     // 添加接受者  
//$mail->addAddress('[email protected]');               // 添加多个接受者  
$mail->addReplyTo('我发送时候用的邮箱@163.com', 'Information'); // 添加回复者,也就是你点击回复操作时指定的发送到哪个邮箱  
//$mail->addCC('[email protected]');                // 添加抄送人  
//$mail->addCC('[email protected]');                     // 添加多个抄送人  
$mail->ConfirmReadingTo = '回执邮箱@163.com';     // 添加发送回执邮件地址,即当收件人打开邮件后,会询问是否发生回执  
//$mail->addBCC('[email protected]');                    // 添加密送者,Mail Header不会显示密送者信息  
$mail->WordWrap = 50;                                 // 设置自动换行50个字符  
//$mail->addAttachment('./1.jpg');                      // 添加附件  
//$mail->addAttachment('/tmp/image.jpg', 'one pic');    // 添加多个附件  
$mail->isHTML(true);                                  // 设置邮件格式为HTML  
$mail->Subject = 'PHPMailer发送邮件';  
$mail->Body    = '发送邮件测试结果进了垃圾箱是因为$mail->AltBody这个问题,把下面一行代码注释掉就好了';  
//$mail->AltBody = '';  

if(!$mail->send()) {  
    echo 'Message could not be sent.';  
    echo 'Mailer Error: ' . $mail->ErrorInfo;  
    exit;  
}  

echo 'Message has been sent';  

注意*可能出现的问题

提示SMTP 数据错误,554

 •554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;
  •554 DT:SUM 信封发件人和信头发件人不匹配;
  •554 IP is rejected, smtp auth error limit exceed 该IP验证失败次数过多,被临时禁止连接。请检查验证信息设置;
  •554 HL:IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;
  •554 HL:IPB 该IP不在网易允许的发送地址列表里;
  •554 MI:STC 发件人当天内累计邮件数量超过限制,当天不再接受该发件人的投信。请降低发信频率;
  •554 MI:SPB 此用户不在网易允许的发信用户列表里;
  •554 IP in blacklist 该IP不在网易允许的发送地址列表里。
 
 一般你从网上复制的代码直接复制黏贴,并把自己的邮件稍微修改一下,基本上都是发送失败的,我上面的代码你可以直接复制并修改,应该能直接使用,这里需要注意的问题在于

  • 1 返回错误,SMTP信息错误554,(打开发送用的邮箱,发现邮件被退信了)因为内容是垃圾信息,也就是官网给出的默认内容,可能因为测试人数过多,服务商直接屏蔽了这些内容,随便修改下发送的内容就能显示发送成功
  • 2 发送成功,结果对方没有收到邮件,是因为邮件进了垃圾邮件,这里我把$mail->Altbody注释掉了,就发送成功了,因为我也没有去研究它的文档,所以我也不知道注释掉这个有什么不同。重点是能发送就可以了。如果你还是无法发送,请检查你的邮箱设置是否启用SMTP协议,正常情况下无论是POP3还是其他协议都是启用了SMTP的。其他问题我就没法解决了。

你可能感兴趣的:(工具,php,phpmailer,邮件发送,php)