hoa/mail
最新稳定版本:0.17.01.13
Composer 安装命令:
composer require hoa/mail
包简介
The Hoa\Mail library.
关键字:
README 文档
README
Hoa is a modular, extensible and
structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds.
Hoa\Mail
This library allows to compose and send rich emails (textual contents, HTML
documents, alternative contents, attachments etc., this is very extensible).
Email can be sent with sendmail or SMTP. The SMTP layer supports TLS and
PLAIN, LOGIN and CRAM-MD5 authentications.
In a near future, this library will also allow to receive and parse emails.
Installation
With Composer, to include this library into
your dependencies, you need to
require hoa/mail:
$ composer require hoa/mail '~0.0'
For more installation procedures, please read the Source page.
Testing
Before running the mail suites, the development dependencies must be installed:
$ composer install
Then, to run all the test suites:
$ vendor/bin/hoa test:run
For more information, please read the contributor guide.
Quick usage
We propose a quick overview to send a very simple email with only one content, and then, a more complex email with an alternative content and an attachment.
Simple email
Before all, just like any messaging softwares, we have to setup the transport. We will send our email by using SMTP as the default transport. We will specify a socket to the SMTP server, a login and a password:
Hoa\Mail\Message::setDefaultTransport( new Hoa\Mail\Transport\Smtp( new Hoa\Socket\Client('tcp://mail.domain.tld:587'), 'gordon_freeman', '*********' ) );
Then, we will get an instance of a message and set all the headers, such as
From, To and Subject, we will add a textual content and we will send it:
$message = new Hoa\Mail\Message(); $message['From'] = 'Gordon Freeman <gordon@freeman.hf>'; $message['To'] = 'Alyx Vance <alyx@vance.hf>'; $message['Subject'] = 'Hoa is awesome!'; $message->addContent( new Hoa\Mail\Content\Text('Check this out: http://hoa-project.net/!') ); $message->send();
Notice that we can use any view or template library to produce the content of the mail!
Rich email
Now, instead of having only one textual content, we will have an alternative content: either textual or HTML.
$message->addContent( // We have either… new Hoa\Mail\Content\Alternative([ // … a text content new Hoa\Mail\Content\Text( 'Check this out: http://hoa-project.net/!' ), // … or an HTML content. new Hoa\Mail\Content\Html( '<a href="http://hoa-project.net/">Check this ' . '<strong>out</strong>!</a>' ) ]) );
Then, to add an attachment, we will add a new kind of content. The attachment is
an image that will be named Foobar.jpg. Thus:
$message->addContent( new Hoa\Mail\Content\Attachment( new Hoa\File\Read('Attachment.jpg'), 'Foobar.jpg' ) );
And finally, we send the email:
$message->send();
Complex email
Now imagine we do not want the image to be only attached but appear in the HTML content. These contents are related. Here is how to construct the email (with more variables to clarify):
// The image. $attachment = new Hoa\Mail\Content\Attachment( new Hoa\File\Read('Attachment.jpg'), 'Foobar.jpg' ); // The text content. $text = new Hoa\Mail\Content\Text('Check this out: http://hoa-project.net/!'); // The HTML content. $html = new Hoa\Mail\Content\Html( '<img src="' . // The HTML image URL is the attachment ID URL. $attachment->getIdUrl() . '" />' ); $message->addContent( // Alternative contents and attachment are related. new Hoa\Mail\Content\Related([ // We still have 2 alternative contents: text or HTML. new Hoa\Mail\Content\Alternative([$text, $html]), $attachment ]) );
Documentation
The
hack book of Hoa\Mail contains
detailed information about how to use this library and how it works.
To generate the documentation locally, execute the following commands:
$ composer require --dev hoa/devtools $ vendor/bin/hoa devtools:documentation --open
More documentation can be found on the project's website: hoa-project.net.
Getting help
There are mainly two ways to get help:
- On the
#hoaprojectIRC channel, - On the forum at users.hoa-project.net.
Contribution
Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know.
License
Hoa is under the New BSD License (BSD-3-Clause). Please, see
LICENSE for details.
hoa/mail 适用场景与选型建议
hoa/mail 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.43k 次下载、GitHub Stars 达 24, 最近一次更新时间为 2014 年 02 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「mail」 「library」 「smtp」 「imap」 「rfc4648」 「sendmail」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 hoa/mail 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hoa/mail 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 hoa/mail 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Courier offers a convenient and painless solution for creating emails tailored for your Kirby website.
Inbox pattern process implementation for your Laravel Applications
Mail libraries used by Zimbra Api
The Message Submission Agent Diagnostics tool (msadiag) facilitates testing the compatibility of third party message submission agents.
Email+ extends Kirby's email capabilities by adding support for multiple email services using the same Kirby email API.
Core library that defines common interfaces used by the rest of the intahwebz..
统计信息
- 总下载量: 4.43k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 24
- 点击次数: 25
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2014-02-21