hoa/mail

此包已被废弃且不再维护。未建议替代包。

Hoa\Mail库。

0.17.01.13 2017-01-13 15:59 UTC

README

Hoa

Build status Code coverage Packagist License

Hoa是一个模块化、可扩展和结构化的PHP库集合。
此外,Hoa旨在成为工业和研究世界之间的桥梁。

Hoa-Mail

Help on IRC Help on Gitter Documentation Board

这个库允许您编写和发送丰富的电子邮件(文本内容、HTML文档、备选内容、附件等,非常可扩展)。可以使用sendmail或SMTP发送电子邮件。SMTP层支持TLS和PLAINLOGINCRAM-MD5认证。

在不久的将来,这个库也将允许接收和解析电子邮件。

了解更多.

安装

使用Composer,要将此库添加到依赖项中,您需要要求hoa/mail

$ composer require hoa/mail '~0.0'

有关更多安装说明,请参阅源代码页面

测试

在运行邮件套件之前,必须安装开发依赖项

$ composer install

然后,运行所有测试套件

$ vendor/bin/hoa test:run

有关更多信息,请参阅贡献者指南

快速使用

我们提供了一个快速概述,以发送只包含一个内容的非常简单的电子邮件,然后是一个具有备选内容和附件的更复杂的电子邮件。

简单电子邮件

首先,就像任何消息软件一样,我们必须设置传输。我们将使用SMTP作为默认传输发送电子邮件。我们将指定SMTP服务器的一个套接字,一个登录名和一个密码

Hoa\Mail\Message::setDefaultTransport(
    new Hoa\Mail\Transport\Smtp(
        new Hoa\Socket\Client('tcp://mail.domain.tld:587'),
        'gordon_freeman',
        '*********'
    )
);

然后,我们将获取一个消息实例并设置所有标题,例如FromToSubject,我们将添加一个文本内容并发送它

$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();

请注意,我们可以使用任何视图或模板库来生成邮件内容!

丰富电子邮件

现在,我们不仅有文本内容,还有一个备选内容:文本或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>'
        )
    ])
);

然后,为了添加一个附件,我们将添加一种新的内容类型。附件是一个名为Foobar.jpg的图片。因此

$message->addContent(
    new Hoa\Mail\Content\Attachment(
        new Hoa\File\Read('Attachment.jpg'),
        'Foobar.jpg'
    )
);

最后,我们发送电子邮件

$message->send();

复杂电子邮件

现在想象一下,我们不仅想要将图片附加,还希望在HTML内容中显示它。这些内容是相关的。以下是构造电子邮件的方法(使用更多变量以阐明)

// 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
    ])
);

文档

《Hoa-Mail》黑客手册包含有关如何使用此库以及它是如何工作的详细信息。

要本地生成文档,请执行以下命令

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

更多文档可以在项目的网站上找到: hoa-project.net

获取帮助

主要有两种方式获取帮助:

贡献

你想做出贡献吗?感谢!详细的贡献指南解释了你需要知道的一切。

许可证

Hoa遵循新BSD许可证(BSD-3-Clause)。请参阅LICENSE以获取详细信息。