jack33232/zjemailservice

此包已被弃用且不再维护。未建议替代包。

封装PHPMailer以简化使用。

0.0.1 2018-03-18 15:01 UTC

This package is auto-updated.

Last update: 2021-04-04 10:00:12 UTC


README

这是一个结合了强大的"PHPMailer"和语义化类库的库,可以帮助你在PHP应用程序中发送邮件时获得更便捷的使用体验。

依赖关系

{
  "php": ">=5.5.0",
  "phpmailer/phpmailer": "~6.0",
  "psr/log": "~1.0"
}

使用方法

注册邮件邮箱

在使用邮件邮箱之前,您需要通过提供一个设置数组(参照PHPMailer文档)、可选的邮箱名称和可选的PSR logger作为调试器来注册一个邮箱。默认情况下,邮箱的名称为"default"。至于PSR logger,这里有一个推荐的库:KLogger

use ZJEmailService\EmailPostbox;
use Katzgrau\KLogger\Logger;

// All possible settings, please refer to PHPMailer Doc
$postbox_setting = [
  'Host' => 'example.exchange.com',
  'Port' => 25,
  'ContentType' => 'text/html',
  'SMTPAuth' => true,
  'SMTPSecure' => 'tls',
  'CharSet' => 'UTF-8',
  'Encoding' => 'base64',
  'SMTPOptions' => array(),
  'Timeout' => 300,
  'SMTPDebug' => 0,
  'Debugoutput' => 'error_log' // only works when no debugger assigned
];
// Postbox name
$postbox_name = 'example';
// PSR logger
$debugger = new Logger(__DIR__.'/logs');
EmailPostbox::register($postbox_setting, $postbox_name, $debugger);

解锁邮箱

注册邮箱后,您应使用该SMTP的用户名和密码解锁邮箱。然后您可以使用邮箱实例发送邮件。

use ZJEmailService\EmailPostbox;

$username = 'username@emample.com';
$password = 'password123';
$from = 'Username';
$postbox_name = 'example';
// The postbox is a singleton
$postbox = EmailPostbox::unlock($username, $password, $from, $postbox_name);

将邮件组成一个< envelopes>对象

ZJEmailService库中的每个邮件都会被转换为一个< envelopes>对象。可以设置内容、主题、收件人、抄送、密送、附件等。该对象可以通过数组访问。

use ZJEmailService\Envelope;

// Third parameter is the priority of the email
$envelope = new Envelope('Test', 'Some text as email body', 'HIGH');
$envelope->setTo(['to@example.com', 'To Name']);

$postbox->send($envelope);