ceus-media / mail
2.6.1
2024-02-12 05:10 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-fileinfo: *
- ext-iconv: *
- ext-imap: *
- ext-json: *
- ceus-media/cache: ^0.5 | 0.5.x-dev | ^0.4 | dev-0.4-dev
- ceus-media/common: ^1.0 | 1.0.x-dev | ^0.9 | 0.9-dev
- ezyang/htmlpurifier: dev-master
Requires (Dev)
- brianium/paratest: *
- ceus-media/bootstrap: ^0.6 | 0.6.x-dev
- ceus-media/doc-creator: *
- ceus-media/phan-viewer: * | dev-master
- phan/phan: ^v5
- php-parallel-lint/php-parallel-lint: ^1.3 | dev-master
- phpstan/phpstan: ^1
- phpstan/phpstan-strict-rules: ^1
- phpunit/phpunit: ^9.5 | ^10.1
- rector/rector: *
- squizlabs/php_codesniffer: *
This package is auto-updated.
Last update: 2024-09-14 04:46:37 UTC
README
使用PHP + IMAP & SMTP生成、发送和阅读邮件。
特性
- 编程
- 简单、易用、简洁
- PHP 7.3+,面向对象风格,可链式调用
- 自动编码
- 自动MIME类型检测
- MIME内容
- HTML
- 纯文本
- 文件附件
- 内联图片
- 参与者
- 收件人、抄送、密送
- 发件人和收件人姓名
- 传输
- SMTP,支持TLS
- 本地PHP邮件函数
- 邮箱
- 通过IMAP和POP3访问
- 按条件搜索
- 检查
- 地址有效性
- 收件人可达性
代码示例
简短版本
此示例展示了如何使用链式调用发送文本邮件。
\CeusMedia\Mail\Transport\SMTP::getInstance("example.com", 587) ->setAuth("john@example.com", "my_password") ->send(\CeusMedia\Mail\Message::getInstance() ->setSender("john@example.com", "John Doe") ->addRecipient("mike@example.com", "Mike Foo") ->setSubject("This is just a test") ->addText("Test Message...") );
详细版本
use \CeusMedia\Mail\Message; use \CeusMedia\Mail\Transport\SMTP; $message = new Message(); $message->setSender("john@example.com", "John Doe"); $message->addRecipient("mike@example.com", "Mike Foo"); $message->addRecipient("log@example.com", NULL, 'cc'); $message->addRecipient("spy@example.com", NULL, 'bcc' ); $message->setSubject("This is just a test"); $message->addText("Test Message..."); $message->addHTML('<h2><img src="CID:logo"/><br>Test Message</h2>'); $message->addInlineImage("logo", "logo.png"); $message->addFile("readme.md"); $transport = new SMTP("example.com", 587); $transport->setUsername("john@example.com"); $transport->setPassword("my_password"); $transport->setVerbose(TRUE); $transport->send( $message );
未来计划
- 现有解析器的文档
- 自动病毒扫描
- 支持日志记录
- 工厂和其他设计模式
- 瘦API - 请参阅“未来版本”
未来版本
发送邮件应尽可能简单。以下是未来接口可能的样子。
注意: 这段代码是伪代码。使用的类尚未实现。
use \CeusMedia\Mail\Client; Client::getInstance("This is just a test") ->from("john@example.com", "John Doe") ->to("mike@example.com", "Mike Foo") ->bcc("spy@example.com") ->text("Test Message...") ->auth("my_password") ->port(587), ->error("handleMailException") ->send(); function handleMailException( $e ){ // ... }
对此示例的想法
- 使用此简短代码发送邮件将仅使用SMTP。
- SMTP服务器将通过获取用户域的MX记录来确定。
- 仍需要设置SMTP服务器端口。
- 分配的收件人将自动检查是否存在。
- 如果认证方法只接收一个参数,它将被理解为密码。
- 认证用户名将从发件人地址中获取。
- 可以由定义的错误处理器捕获抛出的异常。
- 如果一切设置正确,则可以发送邮件。
有用信息
使用Google作为SMTP
Google试图通过多项措施来保护其SMTP访问。如果您在使用Google SMTP发送邮件时遇到问题,请尝试以下步骤
- 打开浏览器并使用Google账户登录Google。
- 允许“不安全的应用”访问。
- 允许应用访问。
- 再试一次!