EasySwoole mailer component

2.0.2 2023-01-10 06:33 UTC

This package is auto-updated.

Last update: 2024-12-10 10:50:01 UTC


README

介绍

电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。电子邮件几乎是每个web应用程序不可或缺的,无论是时事通讯还是订单确认。本库采用swoole协程客户端实现了电子邮件的发送

安装

composer require easyswoole/smtp

用法

基础配置

$mail = new \EasySwoole\Smtp\Mailer(false);

参数:

  • $enableException 是否启用异常 默认false

设置超时

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setTimeout(5);

设置最大数据包大小

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setMaxPackage(1024 * 1024 * 2);

设置Host

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setHost("smtp.qq.com");

设置Port

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setPort(465);

设置Ssl

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setSsl(true);

设置用户名及密码

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setUsername("xxx@qq.com");
$mail->setPassword("xxxxx");

设置发件人地址

可选方法 默认用户名

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setFrom("xxx@qq.com");

参数:

  • $address 发件人地址
  • $name 设置昵称 可选参数

设置收件人地址

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->addAddress("xxx@qq.com");

参数:

  • $address 收件人地址
  • $name 设置昵称 可选参数

设置回复地址

可选方法 默认发件人地址

/** @var \EasySwoole\Smtp\Mailer $mail **/
$mail->setReplyTo("xxx@qq.com");

参数:

  • $address 收件人地址
  • $name 设置昵称 可选参数

发送

发送文本

/** @var \EasySwoole\Smtp\Mailer $mail **/
$text = new \EasySwoole\Smtp\Request\Text();
$text->setSubject("Smtp Test Title");
$text->setBody("Smtp Test Body");

// 添加附件 可选
$text->addAttachment(__FILE__,'附件重命名');

// 发送
$mail->send($text);

发送Html

/** @var \EasySwoole\Smtp\Mailer $mail **/
$text = new \EasySwoole\Smtp\Request\Html();
$text->setSubject("Smtp Test Title");
$text->setBody("<h1>Smtp Test Body<h1>");

// 添加附件 可选
$text->addAttachment(__FILE__,'附件重命名');

// 发送
$mail->send($text);

注意事项

当开启异常的时候,发送过程中出现问题,将会抛出以下异常:

try {
    /** @var \EasySwoole\Smtp\Mailer $mail **/
    $mail->send($text);
}catch (\EasySwoole\Smtp\Exception\Exception $exception) {

}

当未开启异常的时候,发送过程中出现问题,将会返回:

/** @var \EasySwoole\Smtp\Mailer $mail **/
/** @var \EasySwoole\Smtp\Protocol\Response $response **/
$response = $mail->send($text);

StatusCode

  • 0 发送成功
  • 101 客户端连接超时
  • 102 对端不是smtp协议服务
  • 103 客户端接收超时
  • 201 向smtp服务标识发送者失败
  • 202 smtp服务不支持此验证模式
  • 203 用户名出现错误
  • 204 密码验证失败
  • 205 发件人邮箱地址有误
  • 206 收件人邮箱地址有误
  • 207 标识邮件数据开始错误
  • 208 标识邮件数据结束错误
  • 209 退出smtp会话失败