stevegrunwell/mailto-link-formatter

用于创建复杂mailto:链接的格式化工具

v1.0.0 2018-04-16 01:11 UTC

This package is auto-updated.

Last update: 2024-08-28 03:47:42 UTC


README

Build Status Coverage Status Packagist

此软件包定义了一个具有简单API的MailTo类,可以轻松地在您的标记中生成符合RFC 6068的mailto:链接

安装

您可以通过Composer安装Mailto: Link Formatter软件包

$ composer require stevegrunwell/mailto-link-formatter

如果您已经在项目中包含了Composer生成的自动加载器,则无需执行任何操作。否则,您需要将src/MailTo.php包含到您的项目中。

使用方法

MailTo类收集关于mailto:链接的信息,然后通过其getLink()方法生成链接

use SteveGrunwell\MailToLinkFormatter\MailTo;

$mailto = new MailTo;
$mailto->setRecipients('test@example.com');
$mailto->setHeaders([
    'subject' => 'Hello World!',
    'cc'      => 'foo@example.com',
]);
$mailto->setBody('Some message.');

$mailto->getLink();
# => mailto:test@example.com?subject=Hello%20World!&cc=foo%40example.com&body=Some%20message.

如果您愿意,也可以直接在MailTo对象上设置属性,但请注意,这仅是相应设置器和获取器的便捷方法

use SteveGrunwell\MailToLinkFormatter\MailTo;

$mailto = new MailTo;

// The same as calling $mailto->setRecipients('test@example.com').
$mailto->recipients = 'test@example.com';

// The same as calling $mailto->getRecipients().
$mailto->recipients
# => ['test@example.com']

使用的属性没有相应的设置器和获取器(例如,“收件人”、“标题”和“正文”之外的任何内容)将被视为单独的标题,通过setHeader()getHeader()方法传递

use SteveGrunwell\MailToLinkFormatter\MailTo;

$mailto = new MailTo;
$mailto->subject = 'Message subject';

$mailto->getHeaders();
# => ['subject' => 'Message subject']

指定多个收件人

如果mailto:链接应该有多个收件人,可以通过传递数组或逗号分隔的字符串到setRecipients()来设置

use SteveGrunwell\MailToLinkFormatter\MailTo;

$mailto = new MailTo;
$mailto->setRecipients([
    'foo@example.com',
    'bar@example.com',
]);

$mailto->getLink();
# => mailto:foo@example.com,bar@example.com

对于可能有多个值的首部,例如ccbcc,也可以这样做。

首部列表

虽然所有在RCF 822中定义的首部都被认为是有效的,但在mailto:链接中最常用的首部有

to
消息的预期收件人。
subject
消息的主题行
cc
一个或多个要“抄送”(CC)的电子邮件地址。
bcc
一个或多个要“密抄送”(BCC)的电子邮件地址。

传递给软件包的所有首部将自动转换为小写。

通过构造函数设置参数

MailTo类定义的设置器和获取器相当传统,但该类还通过其构造函数接受最常用的参数

use SteveGrunwell\MailToLinkFormatter\MailTo;

$mailto = new MailTo('test@example.com', [
    'subject' => 'Hello World!',
    'cc'      => 'foo@example.com',
], 'This is the message body.');

// This is equivalent to:
$mailto = new MailTo;
$mailto->setRecipients('test@example.com');
$mailto->setHeaders([
    'subject' => 'Hello World!',
    'cc'      => 'foo@example.com',
]);
$mailto->setBody('This is the message body.');

许可证

版权所有2018 Steve Grunwell

特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许有权获得软件的人这样做,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他法律依据,无论这些责任是否与软件或其使用或其他方式相关。