Smtp

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

组件要求

  • php: >=7.1.0
  • ext-swoole: ^4.2.6
  • easyswoole/spl: ^1.1
  • easyswoole/utility: ^1.0

安装方法

composer require easyswoole/smtp

仓库地址

easyswoole/smtp

基本使用

邮件配置

set

设置服务器地址

  1. public function setServer(string $server): void

设置服务器端口

  1. public function setPort(int $port): void

设置ssl

  1. public function setSsl(bool $ssl): void

设置用户名

  1. public function setUsername(string $username): void

设置密码

  1. public function setPassword(string $password): void

设置邮件发送方

  1. public function setMailFrom(string $mailFrom): void

设置超时时间

  1. public function setTimeout(float $timeout): void

设置邮件大小

  1. public function setMaxPackage(int $maxPackage)

get

获取服务地址

  1. public function getServer(): string

获取服务端口

  1. public function getPort(): int

是否设置了ssl

  1. public function isSsl(): bool

获取用户名

  1. public function getUsername(): string

获取密码

  1. public function getPassword(): string

获取邮件发送方

  1. public function getMailFrom(): string

获取超时时间

  1. public function getTimeout(): float

获取邮件大小

  1. public function getMaxPackage()

内容配置

set

设置协议版本

  1. public function setMimeVersion($mimeVersion): void

设置contentType

  1. public function setContentType($contentType): void

设置字符

  1. public function setCharset($charset): void

设置编码

  1. public function setContentTransferEncoding($contentTransferEncoding): void

设置主题

  1. public function setSubject($subject): void

设置邮件内容

  1. public function setBody($body): void

添加附件

  1. public function addAttachment($attachment)

get

获取协议版本

  1. public function getMimeVersion()

获取contenttype

  1. public function getContentType()

获取字符

  1. public function getCharset()

获取编码

  1. public function getContentTransferEncoding()

获取主题

  1. public function getSubject()

获取邮件内容

  1. public function getBody()

获取附件

  1. public function getAttachments()

使用示例

  1. use EasySwoole\Smtp\Mailer;
  2. use EasySwoole\Smtp\MailerConfig;
  3. use EasySwoole\Smtp\Message\Html;
  4. use EasySwoole\Smtp\Message\Attach;
  5. // 必须用go
  6. go(function (){
  7. $config = new MailerConfig();
  8. $config->setServer('smtp.163.com');
  9. $config->setSsl(false);
  10. $config->setUsername('huizhang');
  11. $config->setPassword('*******');
  12. $config->setMailFrom('xx@163.com');
  13. $config->setTimeout(10);//设置客户端连接超时时间
  14. $config->setMaxPackage(1024*1024*5);//设置包发送的大小:5M
  15. //设置文本或者html格式
  16. $mimeBean = new Html();
  17. $mimeBean->setSubject('Hello Word!');
  18. $mimeBean->setBody('<h1>Hello Word</h1>');
  19. //添加附件
  20. $mimeBean->addAttachment(Attach::create('./test.txt'));
  21. $mailer = new Mailer($config);
  22. $mailer->sendTo('xx@qq.com', $mimeBean);
  23. });

进阶使用

邮件内容支持文本和html两种类型

文本

示例

  1. $mimeBean = new \EasySwoole\Smtp\Message\Text();
  2. $mimeBean->setSubject('Hello Word!');
  3. $mimeBean->setBody('<h1>Hello Word</h1>');

效果

Smtp - 图1

Html

  1. $mimeBean = new \EasySwoole\Smtp\Message\Html();
  2. $mimeBean->setSubject('Hello Word!');
  3. $mimeBean->setBody('<h1>Hello Word</h1>');

效果

Smtp - 图2

附件

  1. $mimeBean = new \EasySwoole\Smtp\Message\Text();
  2. //$mimeBean = new \EasySwoole\Smtp\Message\Html();
  3. ...
  4. // 创建附件
  5. $createAttachment = Attach::create('./test.txt');
  6. // 添加附件
  7. $mimeBean->addAttachment($createAttachment);
  8. ...