Smtp
电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。电子邮件几乎是每个web应用程序不可或缺的,无论是时事通讯还是订单确认。本库采用swoole协程客户端实现了电子邮件的发送。
组件要求
- php: >=7.1.0
- ext-swoole: ^4.2.6
- easyswoole/spl: ^1.1
- easyswoole/utility: ^1.0
安装方法
composer require easyswoole/smtp
仓库地址
基本使用
邮件配置
set
设置服务器地址
public function setServer(string $server): void
设置服务器端口
public function setPort(int $port): void
设置ssl
public function setSsl(bool $ssl): void
设置用户名
public function setUsername(string $username): void
设置密码
public function setPassword(string $password): void
设置邮件发送方
public function setMailFrom(string $mailFrom): void
设置超时时间
public function setTimeout(float $timeout): void
设置邮件大小
public function setMaxPackage(int $maxPackage)
get
获取服务地址
public function getServer(): string
获取服务端口
public function getPort(): int
是否设置了ssl
public function isSsl(): bool
获取用户名
public function getUsername(): string
获取密码
public function getPassword(): string
获取邮件发送方
public function getMailFrom(): string
获取超时时间
public function getTimeout(): float
获取邮件大小
public function getMaxPackage()
内容配置
set
设置协议版本
public function setMimeVersion($mimeVersion): void
设置contentType
public function setContentType($contentType): void
设置字符
public function setCharset($charset): void
设置编码
public function setContentTransferEncoding($contentTransferEncoding): void
设置主题
public function setSubject($subject): void
设置邮件内容
public function setBody($body): void
添加附件
public function addAttachment($attachment)
get
获取协议版本
public function getMimeVersion()
获取contenttype
public function getContentType()
获取字符
public function getCharset()
获取编码
public function getContentTransferEncoding()
获取主题
public function getSubject()
获取邮件内容
public function getBody()
获取附件
public function getAttachments()
使用示例
use EasySwoole\Smtp\Mailer;
use EasySwoole\Smtp\MailerConfig;
use EasySwoole\Smtp\Message\Html;
use EasySwoole\Smtp\Message\Attach;
// 必须用go
go(function (){
$config = new MailerConfig();
$config->setServer('smtp.163.com');
$config->setSsl(false);
$config->setUsername('huizhang');
$config->setPassword('*******');
$config->setMailFrom('xx@163.com');
$config->setTimeout(10);//设置客户端连接超时时间
$config->setMaxPackage(1024*1024*5);//设置包发送的大小:5M
//设置文本或者html格式
$mimeBean = new Html();
$mimeBean->setSubject('Hello Word!');
$mimeBean->setBody('<h1>Hello Word</h1>');
//添加附件
$mimeBean->addAttachment(Attach::create('./test.txt'));
$mailer = new Mailer($config);
$mailer->sendTo('xx@qq.com', $mimeBean);
});
进阶使用
邮件内容支持文本和html两种类型
文本
示例
$mimeBean = new \EasySwoole\Smtp\Message\Text();
$mimeBean->setSubject('Hello Word!');
$mimeBean->setBody('<h1>Hello Word</h1>');
效果
Html
$mimeBean = new \EasySwoole\Smtp\Message\Html();
$mimeBean->setSubject('Hello Word!');
$mimeBean->setBody('<h1>Hello Word</h1>');
效果
附件
$mimeBean = new \EasySwoole\Smtp\Message\Text();
//$mimeBean = new \EasySwoole\Smtp\Message\Html();
...
// 创建附件
$createAttachment = Attach::create('./test.txt');
// 添加附件
$mimeBean->addAttachment($createAttachment);
...