最近参与的一个项目 测试服 PHP 环境 7.4 生产服 7.3
测试服使用 phpmailer composer 安装 phpmailer 正常
生产服 composer 安装提示PHP版本不对
最后复制了 phpmailer 插件到 生产服 的vendor 内
使用 require_once() 函数直接引入插件文件使用
参考文章: https://www.cnblogs.com/yuzhould/p/13550196.html
use PHPMailer\PHPMailer\PHPMailer;
// require __DIR__ . '/../../vendor/autoload.php';
require_once(__DIR__ . '/../../vendor/phpmailer/phpmailer/src/PHPMailer.php');
require_once(__DIR__ . '/../../vendor/phpmailer/phpmailer/src/SMTP.php');
class EmailService
{
public function send_email($config,$param)
{
# 初始化返回值
$return_data = [
'status'=>true,
'msg'=>"ok",
'data'=>[]
];
// 引入类
$mailer = new PHPMailer(true);
// 开启调试模式
$mailer->SMTPDebug = 2; // 2 表示详细输出
$mailer->isSMTP();
$mailer->Host = $config['email_host'];
$mailer->CharSet = "utf-8";
$mailer->SMTPAuth = true;
$mailer->Username = $config['email_account'];
$mailer->Password = $config['email_password'];
$mailer->SMTPSecure = 'ssl'; // 或 'tls'
$mailer->Port = $config['email_port']; // 或 587
// 设置邮件内容
$mailer->setFrom($config['email_account'], $config['email_name']);
$mailer->addAddress($param['to_email'], $param['to_name']);
$mailer->addReplyTo($config['email_account'], '回复地址');
$mailer->isHTML(true);
$mailer->Subject = $param['subject'];
$mailer->Body = $param['body'];
// 发送邮件
$res = $mailer->send();
if (!$res) {
$return_data['status'] = false;
$return_data['msg'] = $mailer->ErrorInfo;
}
$return_data['data'] = $mailer;
return $return_data;
}
}