一个简单的 zendframework/zend-mail 包装器,用于方便地构建 MIME 邮件。

v1.1.2 2018-04-22 10:57 UTC

This package is auto-updated.

Last update: 2024-09-12 04:15:50 UTC


README

这是一个简单的 zendframework/zend-mail 包装器,可以自动构建合适的多部分 MIME 邮件。

请随时提交拉取请求。

安装

composer require oliver-schoendorn/mailer

使用示例

创建新的 Mail 对象并初始化邮件元数据

<?php

use OS\Mail\Mail;

$mail = (new Mail())
    ->setSubject('email subject')
    ->setSender('foo@bar.dev', 'Foo Bar')
    ->setFrom('foo@bar.dev', 'Foo Bar')
    ->setTo('receipt@bar.dev', 'Receipt name');

添加内联附件

这是可选的,但如果您使用内联附件,您必须跟踪 MailAttachment 对象,以便在 HTML 邮件正文中引用它。

如果内联附件没有被引用,某些邮件客户端会在邮件下方显示附件或预览,这可能会破坏您精心设计的邮件布局。

<?php

use OS\Mail\MailAttachment;

$inlineImage = (new MailAttachment('file.jpg'))
   ->setContent(fopen('path/to/file.jpg', 'r'))
   ->setMimeType('image/jpg');

$mail->addInlineAttachment($inlineImage);

添加正文部分

<?php

use Zend\Mime\Mime;
use OS\Mail\MailBody;

$mail->addBodyPart((new MailBody())
    ->setMimeType(Mime::TYPE_TEXT)
    ->setContent('Plain text mail content'));

$mail->addBodyPart((new MailBody())
    ->setMimeType(Mime::TYPE_HTML)
    ->setContent('<html><body><p>Html mail content<img src="' . $inlineImage . '" /></p></body></html>'));

添加(非内联)附件

通常,这些只在基于所使用的邮件客户端的上下文菜单或类似菜单中显示为附件。

<?php
use OS\Mail\MailAttachment;

$mail->addAttachment((new MailAttachment('file.jpg'))
    ->setContent(fopen('path/to/file.jpg', 'r'))
    ->setMimeType('image/jpg'));

发送邮件

要发送邮件,您可以直接使用 Zend 类定义传输对象,或者可以使用内置的 MailTransportFactory,它提供了一些类型提示。

<?php
use OS\Mail\MailTransportFactory;

$mailTransport = (new MailTransportFactory())->createSmtpTransportWithLogin(
    $config['mail']['user'],
    $config['mail']['pass'],
    $config['mail']['encryption'],
    $config['mail']['name'],
    $config['mail']['host'],
    $config['mail']['port']
);

$mail->send($mailTransport);

许可证

版权所有 2018 Oliver Schöndorn

根据 Apache 许可证 2.0 版(“许可证”);除非遵守许可证,否则不得使用此文件。您可以在以下位置获得许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证。有关许可证的具体语言、权限和限制,请参阅许可证。