当前位置: 首页 > news >正文

phpmailer和swiftmailer发信SMTP

<?php
//require 'PHPMailer/src/Exception.php';
//require 'PHPMailer/src/PHPMailer.php';
//require 'PHPMailer/src/SMTP.php';use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;require 'vendor/autoload.php';$mail = new PHPMailer(true);           // Passing `true` enables exceptions
try {$mail->CharSet ="UTF-8";                     //设定邮件编码$mail->SMTPDebug = SMTP::DEBUG_OFF;          // 调试模式输出$mail->isSMTP();                             // 使用SMTP$mail->Host = 'smtp.126.com';                // SMTP服务器$mail->SMTPAuth = true;                      // 允许 SMTP 认证$mail->Username = 'name@xxx.com';                // SMTP 用户名  即邮箱的用户名$mail->Password = 'password';             // SMTP 密码  部分邮箱是授权码(例如163邮箱)$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;  // 允许 TLS 或者ssl协议$mail->Port = 465;// 服务器端口 25 或者465 具体要看邮箱服务器支持$mail->setFrom('name@xxx.com', '频率跳动资源网');  //发件人//$mail->addAddress('251023596@qq.com', 'breeze');  // 收件人//$mail->addAddress('ellen@example.com');  // 可添加多个收件人$mail->addReplyTo('name@xxx.com', '频率跳动资源网'); //回复的时候回复给哪个邮箱 建议和发件人一致// 邮件数组$emails = ['251023596@qq.com' => 'breeze',];// 循环发送邮件foreach ($emails as $email => $name) {$mail->clearAddresses(); // 清除之前的收件人$mail->addAddress($email, $name); // 添加当前收件人// $mail->addAttachment('./upload/files/xy.zip');         // 添加附件,用这个显示名称默认文件名称// $mail->addAttachment('./upload/files/thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名,用这个显示名称可以自定义//如果需要在邮件内容里面贴图片,需要填写下面语句,然后再html代码里面使用<img src="cid:weixin_img" >来接收//切记,如果附件和图片同时存在,需要 先添加附件再添加图片,不然图片不显示(PS:发现也没用了,2个不能同时存在, 目前没有找到解决办法,如果你能解决了给我留个言呗,谢谢)$mail->addEmbeddedImage('./logo.png','logo_img');  // 添加图片$mail->setLanguage('zh-cn', 'D:/easyphp/wwwroot/hertzdance/vendor/phpmailer/phpmailer/language/');$mail->isHTML(true); // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容$mail->Subject = '极速下载(https://www.swiftdown.com/)焕新升级!!! by phpmailer';$mail->Body    = '<img src="cid:logo_img" /><br><h1>本站即日起,全新升级为 <span style="color:red;font-weight:blod;"><a target="_blank" href="https://www.hertzdance.com/">频率跳动资源网</a></span></h1>' . date('Y-m-d H:i:s') . '<br>';$mail->Body    .= '新站域名是 https://www.hertzdance.com/,欢迎各位新老客户访问!<br><br>';$mail->Body    .= '号外!号外!新站正在做活动,新注册用户购买相关服务送积分或VIP会员!<br><br>';$mail->Body    .= '注意!注意!老客户(购买过极速下载站服务的客户)注册新站后请QQ与我(251023596)联系,送福利!';$mail->AltBody = '本站即日起,全新升级为频率跳动资源网,新站域名是 https://www.hertzdance.com/,欢迎各位新老客户访问!目前本站正在做活动~';$mail->send();echo "邮件发送成功 {$name} <{$email}>\n";}
} catch (\Exception $e) {echo '邮件发送失败' . $mail->ErrorInfo;
}
PHP
 
<?php
//https://swiftmailer.symfony.com/docs/introduction.html
require 'vendor/autoload.php';//$smtpUtf8 = new Swift_Transport_Esmtp_SmtpUtf8Handler();
//$transport->setExtensionHandlers([$smtpUtf8]);
//$utf8Encoder = new Swift_AddressEncoder_Utf8AddressEncoder();
//$transport->setAddressEncoder($utf8Encoder);// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.126.com', 465, 'ssl'))->setUsername('name@xxx.com')->setPassword('password');// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);// Rate limit to 100 emails per-minute
$mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin(100, Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE));// Rate limit to 10MB per-minute
$mailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin(1024 * 1024 * 10, Swift_Plugins_ThrottlerPlugin::BYTES_PER_MINUTE));$logger = new Swift_Plugins_Loggers_ArrayLogger();
$mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));// Create a message
$message = new Swift_Message('极速下载(https://www.swiftdown.com/)焕新升级!!! by swiftmailer');// 添加图片并获取CID
$imagePath = 'logo.png';
$imageData = file_get_contents($imagePath);
//$cid = $message->embed((new Swift_Image($imageData, 'logo_png'))->setContentType('image/png'));
//$image = (new Swift_Image())->setFilename('logo.png')->setContentType('image/png')->setBody($imageData);
//$cid = $message->embed($image);
$cid = $message->embed(new Swift_Image($imageData, 'logo_png', 'image/png'));$message
->setCharset('UTF-8')
->setSender('name@xxx.com', '频率跳动资源网')
->setFrom(['name@xxx.com' => '频率跳动资源网'])
->setTo(['251023596@qq.com' => 'breeze'
])
//->attach(Swift_Attachment::fromPath('logo.png','image/png')->setFilename('logo.png'))
->setBody(
'<html>' .
'<body>' .
'<img src="' . $cid . '" alt="Image" /><br><h1>本站即日起,全新升级为 <span style="color:red;font-weight:blod;"><a target="_blank" href="https://www.hertzdance.com/">频率跳动资源网</a></span></h1>' . date('Y-m-d H:i:s') . '<br>'
. '新站域名是 https://www.hertzdance.com/,欢迎各位新老客户访问!<br><br>'
. '号外!号外!新站正在做活动,新注册用户购买相关服务送积分或VIP会员!<br><br>'
. '注意!注意!老客户(购买过极速下载站服务的客户)注册新站后请QQ与我(251023596)联系,送福利!'
. '</body>'
. '</html>',
'text/html');// Send the message
$result = $mailer->send($message);
echo '<pre>';
echo $logger->dump();
PHP
 
 
http://www.jsqmd.com/news/540583/

相关文章:

  • Z-Image-ComfyUI新手入门:无需代码,一键生成高质量AI图像
  • 如何快速掌握FLAC:面向音乐爱好者的完整无损音频压缩指南
  • 游戏开发中的流水线优化:从CPU冒险问题到GPU并行计算
  • 图片防御与lvlm攻击论文阅读笔记
  • OpenClaw配置加密:GLM-4.7-Flash连接凭证的安全存储方案
  • League-Toolkit:英雄联盟辅助工具的效率提升与战术优化指南
  • SDMatte与前端Vue.js结合:打造交互式在线抠图工具
  • GetQzonehistory:数字记忆守护的终极方案
  • FinFET技术如何重塑现代芯片设计?
  • 别再只盯着GDP了!用Python+GIS手把手教你计算城市土地利用强度指数(附代码与数据)
  • 3D打印机步进电机参数计算全攻略:从同步带到丝杆的实战配置
  • 避坑指南:用FragmentStateAdapter优化ViewPager卡片内存泄漏问题
  • 立创K230庐山派Linux小核实战:从零配置WiFi模块与网络调试
  • Shardingsphere-Proxy 5.5.0部署避坑指南:从配置文件到数据库连接的全流程解析
  • 如何快速下载网易云音乐双语歌词:LrcHelper完整指南
  • 高效PDF处理:用PDF Arranger实现极简文档管理
  • 【PyCharm】解决gensim安装难题:从环境配置到镜像源优化
  • 3步解锁苹果电脑新玩法:用PlayCover畅玩iOS游戏和应用
  • Spring Boot 3.0 + Vue 3 实战:手把手教你搭建图书管理系统(附完整源码)
  • 别只刷题了!用Killer.sh模拟考和K8s官方文档搞定CKA的17道真题
  • 2026降AI率工具红黑榜:降AI率工具怎么选?一篇讲透
  • 6种专业计时模式:让OBS直播时间管理变得如此简单
  • 拓扑优化避坑指南:SIMP算法在MATLAB里跑不收敛?可能是这5个参数没调对
  • 别再手动调坐标轴了!Excel两列数据一键生成折线图的正确姿势(附散点图对比)
  • ArcGIS Desktop许可证被占满?别慌,这3个方法帮你快速释放Advanced许可(附详细步骤)
  • OpenClaw+GLM-4.7-Flash自动化周报:飞书日程解析与成果摘要生成
  • Jeecg-Boot弱口令漏洞实战:从后台渗透到远程代码执行
  • B站评论区成分检测器:5分钟快速识别用户背景的终极指南
  • 实时口罩检测-通用案例分享:多张人脸口罩识别效果展示
  • 中山大学LaTeX论文模板实战指南:5步轻松配置本地与云端写作环境