fyre/mail

一个邮件库。

v2.0.7 2024-06-29 06:42 UTC

This package is auto-updated.

Last update: 2024-09-29 07:06:22 UTC


README

FyreMail 是一个免费的、开源的 PHP 邮件库。

目录

安装

使用 Composer

composer require fyre/mail

在 PHP 中

use Fyre\Mail\Mail;

方法

清除

清除所有实例和配置。

Mail::clear();

获取配置

获取 邮件器 配置。

  • $key 是表示 邮件器 键的字符串。
$config = Mail::getConfig($key);

如果省略了 $key 参数,将返回包含所有配置的数组。

$config = Mail::getConfig();

获取键

获取 邮件器 实例的键。

$key = Mail::getKey($mailer);

检查配置是否存在

检查是否存在 邮件器 配置。

  • $key 是表示 邮件器 键的字符串,默认为 Mail::DEFAULT
$hasConfig = Mail::hasConfig($key);

检查是否已加载

检查 邮件器 实例是否已加载。

  • $key 是表示 邮件器 键的字符串,默认为 Mail::DEFAULT
$isLoaded = Mail::isLoaded($key);

加载

加载一个 邮件器

  • $options 是一个包含配置选项的数组。
$mailer = Mail::load($options);

设置配置

设置 邮件器 配置。

  • $key 是表示 邮件器 键的字符串。
  • $options 是一个包含配置选项的数组。
Mail::setConfig($key, $options);

也可以提供一个包含配置选项键值对的单个数组。

Mail::setConfig($config);

卸载

卸载一个 邮件器

  • $key 是表示 邮件器 键的字符串,默认为 Mail::DEFAULT
$unloaded = Mail::unload($key);

使用

加载一个共享的 邮件器 实例。

  • $key 是表示 邮件器 键的字符串,默认为 Mail::DEFAULT
$mailer = Mail::use($key);

邮件器

您可以通过指定上面 $options 变量的 className 选项来加载特定的邮件器。

可以通过扩展 \Fyre\Mail\Mailer 来创建自定义邮件器,确保实现以下所有方法。

电子邮件

创建一个 电子邮件

$email = $mailer->email();

获取字符集

获取邮件器字符集。

$charset = $mailer->getCharset();

获取客户端

获取客户端主机名。

$client = $mailer->getCliet();

发送

发送一个 电子邮件

$mailer->send($email);

Sendmail

可以使用自定义配置加载 Sendmail 邮件器。

  • $key 是表示邮件器键的字符串。
  • $options 是一个包含配置选项的数组。
    • className 必须设置为 \Fyre\Mail\Handlers\SendmailMailer
    • charset 是表示字符集的字符串,默认为 "utf-8"。
    • client 是表示客户端主机名的字符串。
Mail::setConfig($key, $options);

$mailer = Mail::use($key);

SMTP

可以使用自定义配置加载 SMTP 邮件器。

  • $key 是表示邮件器键的字符串。
  • $options 是一个包含配置选项的数组。
    • className 必须设置为 \Fyre\Mail\Handlers\SmtpMailer
    • host 是表示 SMTP 主机的字符串,默认为 "127.0.0.1"。
    • username 是表示 SMTP 用户名的字符串。
    • password 是表示 SMTP 密码的字符串。
    • port 是表示 SMTP 端口的数字,默认为 465
    • auth 是一个布尔值,表示是否需要认证,默认为 false
    • tls 是一个布尔值,表示是否使用 TLS 加密,默认为 False
    • dsn 是一个布尔值,表示是否使用投递状态通知,默认为 False
    • keepAlive 是一个布尔值,表示是否使用持久连接,默认为 False
    • charset 是表示字符集的字符串,默认为 "utf-8"。
    • client 是表示客户端主机名的字符串。
Mail::setConfig($key, $options);

$mailer = Mail::use($key);

电子邮件

添加附件

添加附件。

  • $attachments 是一个包含附件的数组,键是文件名,值是附件数据数组。
    • file 是一个表示文件路径的字符串。
    • content 是一个表示文件数据的字符串。
    • mimeType 是一个表示 MIME 内容类型的字符串。
    • contentId 是一个表示内容 ID 的字符串。
    • disposition 是一个表示内容处理的字符串。
$email->addAttachments($attachments);

对于每个附件,必须提供 filecontent

如果省略了 mimeType,它将从文件数据中自动确定。

如果省略了 disposition,如果提供了 contentId,则默认为 "inline",否则为 "attachment"。

添加密送地址

添加一个密送地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->addBcc($email, $name);

添加抄送地址

添加一个抄送地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->addCc($email, $name);

添加回复地址

添加一个回复地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->addReplyTo($email, $name);

添加收件人

添加一个收件人地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->addTo($email, $name);

获取附件

获取附件。

$attachments = $email->getAttachments();

获取密送地址

获取密送地址。

$bcc = $email->getBcc();

获取正文 HTML

获取 HTML 正文字符串。

$html = $email->getBodyHtml();

获取正文文本

获取文本正文字符串。

$text = $email->getBodyText();

获取边界

获取边界。

$boundary = $email->getBoundary();

获取抄送地址

获取抄送地址。

$cc = $email->getCc();

获取字符集

获取字符集

$charset = $email->getCharset();

获取格式

获取电子邮件格式。

$format = $email->getFormat();

获取发件人

获取发件人地址。

$from = $email->getFrom();

获取标题

获取附加标题。

$headers = $email->getHeaders();

获取消息 ID

获取消息 ID。

$messageId = $email->getMessageId();

获取优先级

获取优先级。

$priority = $email->getPriority();

获取已读回执

获取已读收件人地址。

$readReceipt = $email->getReadReceipt();

获取收件人

获取收件人地址。

$recipients = $email->getRecipients();

获取回复地址

获取回复地址。

$replyTo = $email->getReplyTo();

获取退信地址

获取退信地址。

$returnPath = $email->getReturnPath();

获取发件人

获取发件人地址。

$sender = $email->getSender();

获取主题

获取主题。

$subject = $email->getSubject();

获取收件人

获取收件人地址。

$to = $email->getTo();

发送

发送电子邮件

$email->send();

设置附件

设置附件。

  • $attachments 是一个包含附件的数组,键是文件名,值是附件数据数组。
    • file 是一个表示文件路径的字符串。
    • content 是一个表示文件数据的字符串。
    • mimeType 是一个表示 MIME 内容类型的字符串。
    • contentId 是一个表示内容 ID 的字符串。
    • disposition 是一个表示内容处理的字符串。
$email->setAttachments($attachments);

对于每个附件,必须提供 filecontent

如果省略了 mimeType,它将从文件数据中自动确定。

如果省略了 disposition,如果提供了 contentId,则默认为 "inline",否则为 "attachment"。

设置密送地址

设置密送地址。

  • $emails 是一个包含电子邮件地址的数组,或者电子邮件地址和名称的键值对。
$email->setBcc($emails);

设置正文 HTML

设置正文 HTML。

  • $html 是一个表示正文 HTML 的字符串。
$email->setBodyHtml($html);

设置正文文本

设置正文文本。

  • $text 是一个表示正文文本的字符串。
$email->setBodyText($text);

设置抄送地址

设置抄送地址。

  • $emails 是一个包含电子邮件地址的数组,或者电子邮件地址和名称的键值对。
$email->setCc($emails);

设置字符集

设置字符集。

  • $charset 是一个表示字符集的字符串。
$email->setCharset($charset);

设置格式

设置电子邮件格式。

  • $format 是一个表示电子邮件格式的字符串,必须是 "html"、"text" 或 "both" 中的一个。
$email->setFormat($format);

设置发件人

设置发件人地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->setFrom($email, $name);

设置标题

设置附加标题。

  • $headers 是一个包含附加标题的数组。
$email->setHeaders($headers);

设置优先级

设置优先级。

$email->setPriority($priority);

设置已读回执

设置已读收件人地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->setReadReceipt($email, $name);

设置回复地址

设置回复地址。

  • $emails 是一个包含电子邮件地址的数组,或者电子邮件地址和名称的键值对。
$email->setReplyTo($emails);

设置退信地址

设置退信地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->setReturnPath($email, $name);

设置发件人

设置发件人地址。

  • $email 是一个表示电子邮件地址的字符串。
  • $name 是一个表示名称的字符串,默认为电子邮件地址。
$email->setSender($email, $name);

设置主题

设置主题。

  • $subject 是一个表示主题的字符串。
$email->setSubject($subject);

设置收件人

设置收件人地址。

  • $emails 是一个包含电子邮件地址的数组,或者电子邮件地址和名称的键值对。
$email->setTo($emails);