<?php // 报告所有错误 ini_set('display_errors', 'On'); error_reporting(-1); //========== 配置参数(以下内容请根据实际情况修改,且建议保存到配置文件或数据库) ==========// $cfg_smtp_host = 'smtp.qq.com'; // SMTP服务器 $cfg_smtp_port = 465; // SMTP服务端口号 $cfg_smtp_username = '123456789@qq.com'; // SMTP账号,同时也是发件人邮箱地址 $cfg_smtp_password = '****************'; // SMTP授权码,注意:不是邮箱的登录密码 $cfg_from_name = '码农人生'; // 发件人名称(非必填) //========== 构造邮件 ==========// $mailToAddress = 'ZhangSan@manong.life'; // 收件人邮箱地址 $mailToName = '张三'; // 收件人名称(非必填) $mailSubject = '欲习编程何方强 ☛ 齐鲁泺邑寻蓝翔'; // 邮件主题 $mailBody = 'PHP是世界上<u style="font-size:larger;font-weight:bolder;">最好的</u>语言!'; // 邮件内容,可使用HTML代码 $mailAttachment = [ // 附件,其中path为附件路径,name为附件名称(非必填) ['path' => '/tmp/php.txt', 'name' => 'PHP·从入门到放弃.txt'], ['path' => '/tmp/mysql.txt', 'name' => 'MySQL·从删库到跑路.txt'], ]; // 引入PHPMailer库 require_once __DIR__ . '/PHPMailer-6.8.0/src/Exception.php'; require_once __DIR__ . '/PHPMailer-6.8.0/src/PHPMailer.php'; require_once __DIR__ . '/PHPMailer-6.8.0/src/SMTP.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; // 创建PHPMailer对象 $mailer = new PHPMailer(true); // true=发送失败抛出异常|false=发送失败不抛出异常 //========== 设置SMTP服务器 ==========// $mailer->Host = $cfg_smtp_host; // SMTP服务器 $mailer->Port = $cfg_smtp_port; // SMTP服务端口号 $mailer->Username = $cfg_smtp_username; // SMTP账号 $mailer->Password = $cfg_smtp_password; // SMTP授权码,注意:不是邮箱的登录密码 $mailer->SMTPDebug = SMTP::DEBUG_OFF; // 关闭调试模式 $mailer->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // 该常量等价于'ssl' $mailer->CharSet = PHPMailer::CHARSET_UTF8; // 该常量等价于'utf-8' $mailer->SMTPAuth = true; // 启用SMTP身份验证 $mailer->isSMTP(); // 使用SMTP发送邮件 $mailer->isHTML(); // 邮件内容的格式为HTML //========== 设置发件人信息 ==========// try { // 设置发件人邮箱地址和发件人名称,注意发件人邮箱地址必须使用SMTP账号 $mailer->setFrom($cfg_smtp_username, $cfg_from_name); } catch (Exception $e) { exit('设置发件人信息失败,原因:' . $e->getMessage()); } //========== 设置邮件主题和邮件内容 ==========// $mailer->Subject = $mailSubject; // 邮件主题 $mailer->Body = $mailBody; // 邮件内容,可使用HTML代码 //========== 设置收件人信息 ==========// try { // 设置收件人邮箱地址和收件人名称,其中收件人名称非必填 $mailer->addAddress($mailToAddress, $mailToName); } catch (Exception $e) { exit('设置收件人信息失败,原因:' . $e->getMessage()); } //========== 设置附件 ==========// try { // 遍历所有附件,设置附件路径和附件名称,其中附件名称非必填 foreach ($mailAttachment as $value) { $mailer->addAttachment($value['path'], $value['name']); } } catch (Exception $e) { exit('设置附件失败,原因:' . $e->getMessage()); } //========== 发送邮件 ==========// try { $result = $mailer->send(); // 发送成功返回true,否则返回false if ($result === true) { $mailer->clearAddresses(); // 清除所有收件人 $mailer->clearAllRecipients(); // 清除所有收件人类型 $mailer->clearAttachments(); // 清除所有附件(不是删除附件) exit('发送邮件成功'); } exit("发送邮件失败,原因:$mailer->ErrorInfo"); } catch (Exception $e) { exit('发送邮件异常,原因:' . $e->getMessage()); } //========== 总结 ==========// // 参考资料:https://github.com/PHPMailer/PHPMailer
Copyright © 2024 码农人生. All Rights Reserved