PHP 使用 phpmailer 发送电子邮件

来源:https://www.runoob.com/w3cnote/php-phpmailer.html

参考上面链接的教程就可以实现了,但如果通过composer方式安装,可能会出现下面问题。

  1. Parse error:syntax error,unexoected ‘use’ (T_USE) in …
  2. Fatal error:Class ‘PHPMailer’ not found in …

如果出现问题1,只需要注释或删除以下两行即可

use PHPMailer\PHPMailer\PHPMailer; 
use PHPMailer\PHPMailer\Exception; 

如果出现问题 2,只需要把下面代码
$mail = new PHPMailer(true);                              // Passing `true` enables exceptions 

换成下面这句

$mail = new PHPMailer\PHPMailer\PHPMailer();

以下修改后的代码:
<?php 
//use PHPMailer\PHPMailer\PHPMailer; 
//use PHPMailer\PHPMailer\Exception; 

require './src/Exception.php'; 
require './src/PHPMailer.php'; 
require './src/SMTP.php'; 

//$mail = new PHPMailer(true);                              // Passing `true` enables exceptions 
$mail = new PHPMailer\PHPMailer\PHPMailer();
try { 
    //服务器配置 
    $mail->CharSet ="UTF-8";                     //设定邮件编码 
    $mail->SMTPDebug = 0;                        // 调试模式输出 
    $mail->isSMTP();                             // 使用SMTP 
    $mail->Host = 'smtp.163.com';                // SMTP服务器 
    $mail->SMTPAuth = true;                      // 允许 SMTP 认证 
    $mail->Username = '邮箱用户名';                // SMTP 用户名  即邮箱的用户名 
    $mail->Password = '密码或者授权码';             // SMTP 密码  部分邮箱是授权码(例如163邮箱) 
    $mail->SMTPSecure = 'ssl';                    // 允许 TLS 或者ssl协议 
    $mail->Port = 465;                            // 服务器端口 25 或者465 具体要看邮箱服务器支持 

    $mail->setFrom('[email protected]', 'Mailer');  //发件人 
    $mail->addAddress('[email protected]', 'Joe');  // 收件人 
    //$mail->addAddress('[email protected]');  // 可添加多个收件人 
    $mail->addReplyTo('[email protected]', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致 
    //$mail->addCC('[email protected]');                    //抄送 
    //$mail->addBCC('[email protected]');                    //密送 

    //发送附件 
    // $mail->addAttachment('../xy.zip');         // 添加附件 
    // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名 

    //Content 
    $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容 
    $mail->Subject = '这里是邮件标题' . time(); 
    $mail->Body    = '<h1>这里是邮件内容</h1>' . date('Y-m-d H:i:s'); 
    $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容'; 

    $mail->send(); 
    echo '邮件发送成功'; 
} catch (Exception $e) { 
    echo '邮件发送失败: ', $mail->ErrorInfo; 
}

猜你喜欢

转载自blog.csdn.net/LifeZealot/article/details/104764850