Pigeon Mail 是一个基于 PHPMailer 封装的简单、稳定的邮件发送工具包,旨在帮助开发人员识别和解决与SMTP(简单邮件传输协议)相关的错误。无论是网站、Web应用程序还是后端服务,PigeonMail都能够轻松集成,并提供清晰的SMTP错误信息翻译,使开发人员能够更快速、更准确地定位和解决邮件发送中的问题。
-
多种SMTP错误类型的识别和翻译: PigeonMail能够识别多种SMTP错误,包括连接失败、验证问题、邮件内容拒收等,并提供相应的人类可读翻译。无论是针对腾讯邮箱、网易邮箱还是其他邮件服务提供商,该组件都能够提供详尽的解释。
-
灵活的邮件问题诊断解决方案: 通过简单的调用接口,开发人员可以轻松地将PigeonMail集成到现有的邮件发送逻辑中。该组件包能够帮助开发人员快速定位和解决与邮件发送相关的问题,提高系统的稳定性和可靠性。
-
覆盖广泛的错误类型和邮件服务提供商: PigeonMail涵盖了多种SMTP错误类型,包括但不限于连接失败、身份验证问题、邮件内容被拒绝等。无论是对于腾讯邮箱、网易邮箱还是其他邮件服务提供商,该组件都能够提供清晰的解释和解决方案。
<?php
require __DIR__ . '/vendor/autoload.php';
use Mrzkit\PigeonMail\DefaultMailConfig;
use Mrzkit\PigeonMail\MailProvider;
use Mrzkit\PigeonMail\MailTransfer;
use Mrzkit\PigeonMail\Sender;
$mailTransfer = new MailTransfer();
$config = [
'transport' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl', // or tls
'username' => 'testemail',
'password' => 'password',
'timeout' => 30,
'debug' => true,
//
'mailFromAddress' => 'testemail',
'mailFromName' => '杰哥',
'exceptions' => true,
'SMTPAuth' => true,
'SMTPKeepAlive' => true,
'SMTPAutoTLS' => false,
];
$params = [
// 发件人
'from' => ['address' => 'testemail', 'name' => ''],
'replyTo' => ['address' => 'testemail', 'name' => ''],
// 收件人
'recipients' => [
['address' => '', 'name' => '']
],
//
'customHeaders' => [
"Message-ID" => null,
"In-Reply-To" => null,
"References" => null,
],
// 抄送人
'cc' => [],
// 密送人
'bcc' => [],
// 邮件标题
'subject' => "Mail Title",
// 邮件内容
'body' => '<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Mail Content Hello World! ' . date('Y-m-d H:i:s') . '</h1>
</body>
</html>',
];
// 设置邮箱各项信息
$mailTransfer->setFrom($params['from'])
->setRecipients($params['recipients'])
->setReplyTo($params['replyTo'] ?? $params['from'])
->setCC($params['cc'] ?? [])
->setBCC($params['bcc'] ?? [])
->setSubject($params['subject'])
->setBody($params['body'])
->setAttachments($params['attachments'] ?? [])
->setCustomHeaders($params['customHeaders'] ?? []);
$defaultMailConfig = new DefaultMailConfig($config);
$defaultMailProvider = new MailProvider($defaultMailConfig);
$sender = new Sender($mailTransfer, $defaultMailProvider);
$result = $sender->send();
var_dump($result);