socketlabs/email-delivery

SocketLabs 邮件投递 PHP 客户端库

1.4.5 2023-12-11 14:23 UTC

This package is not auto-updated.

Last update: 2024-09-16 18:07:53 UTC


README

SocketLabs

Twitter Follow MIT licensed PRs Welcome

SocketLabs 邮件投递 PHP 库允许您通过 SocketLabs 注入 API 轻松发送电子邮件消息。该库使得构建和发送任何由 API 支持的消息变得容易,从单一收件人的简单消息到具有每个收件人独特合并数据的组收件人的复杂群发消息。

目录

先决条件和安装

先决条件

  • PHP 5.6 或更高版本
  • SocketLabs 账户。如果您还没有,您可以免费注册以开始使用。

安装

对于大多数用途,我们建议通过 Composer 安装 socketlabs/email-delivery 包。如果您已经安装了 Composer,您可以使用以下命令添加最新版本的包

composer require socketlabs/email-delivery

或者,您可以直接 克隆此存储库 将源代码包含到您的项目中。请确保为方便起见引用以下包含文件: includes.php

入门

获取您的 API 密钥和 SocketLabs 服务器 ID 号

为了开始使用,您需要在 SocketLabs 控制面板 中启用注入 API 功能。登录后,导航到您的 SocketLabs 服务器仪表板(如果您在您的账户中只有一个服务器,登录后您将被直接带到这里)。请注意您的 4 位或 5 位数字服务器 ID 号,因为您将需要此 ID 号以及您的 API 密钥才能使用注入 API。

要启用注入 API,请点击顶级导航中的“开发者”下拉菜单,然后选择“配置 HTTP 注入 API”选项。在这里,您可以通过在下拉菜单中选择“启用”选项来启用此功能。启用功能还将生成您的 API 密钥,您将需要(与您的服务器 ID 一起)才能开始使用 API。完成更改后,请务必单击“更新”按钮保存您的更改。

基本消息

基本消息类似于您从 Outlook 等个人电子邮件客户端发送的电子邮件消息。基本消息可以有多个收件人,包括多个“收件人”地址、“抄送”地址,甚至“密送”地址。您还可以在基本消息中发送文件附件。

include_once ("./socketlabs-php/InjectionApi/src/includes.php");
//or if using composer: include_once ('./vendor/autoload.php');

use Socketlabs\SocketLabsClient;
use Socketlabs\Message\BasicMessage;
use Socketlabs\Message\EmailAddress;

$client = new SocketLabsClient(000001, "YOUR-API-KEY"); //Your SocketLabs ServerId and Injection API key

$message = new BasicMessage();

$message->subject = "Sending A Basic Message";
$message->htmlBody = "<html>This is the Html Body of my message.</html>";
$message->plainTextBody = "This is the Plain Text Body of my message.";

$message->from = new EmailAddress("from@example.com");
$message->replyTo = new EmailAddress("replyto@example.com");

//A basic message supports up to 50 recipients and supports several different ways to add recipients
$message->addToAddress("recipient1@example.com"); //Add a To address by passing the email address
$message->addCcAddress("recipient2@example.com", "Recipient #2"); //Add a CC address by passing the email address and a friendly name
$message->addBccAddress(new EmailAddress("recipient3@example.com")); //Add a BCC address by passing an EmailAddress object

$response = $client->send($message);

群发消息

群发消息通常每条消息包含一个收件人,通常用于向多个收件人发送相同的内容,可选地通过使用 MergeData 对消息进行定制。有关使用合并数据的更多信息,请参阅 注入 API 文档

include_once ("./socketlabs-php/InjectionApi/src/includes.php");
//or if using composer: include_once ('./vendor/autoload.php');

use Socketlabs\Message\BulkMessage;
use Socketlabs\Message\BulkRecipient;
use Socketlabs\Message\EmailAddress;
use Socketlabs\SocketLabsClient;

$client = new SocketLabsClient(000001, "YOUR-API-KEY"); //Your SocketLabs ServerId and Injection API key

//Build the message
$message = new BulkMessage();
$message->subject = "Sending A Bulk Message";
$message->htmlBody = "<html>This is the Html Body of my message sent to the recipient with %%EyeColor%% eyes.</html>";
$message->plainTextBody = "This is the Plain Text Body of my message sent to the recipient with %%EyeColor%% eyes.";
$message->from = new EmailAddress("from@example.com");
$message->replyTo = new EmailAddress("replyto@example.com");

//Add Bulk Recipients
$recipient1 = $message->addToAddress("recipient1@example.com", "Recipient #1");
$recipient1->addMergeData("EyeColor", "Green");

$recipient2 = $message->addToAddress("recipient2@example.com", "Recipient #2");
$recipient2->addMergeData("EyeColor", "Blue");


//Create the client and send the message
$response = $client->send($message);

管理 API 密钥

为了便于演示,我们的大部分示例直接在我们的代码示例中包含了 ServerId 和 API 密钥。通常,将此类敏感信息直接存储在代码中并不是一个好的实践。

示例和用例

为了展示SDK的多种可能用例,我们提供了一系列代码示例。这些示例展示了注入API和SDK提供的许多不同功能,包括使用在SocketLabs Email Designer中创建的模板,自定义电子邮件头,发送附件,发送存储在HTML文件中的内容,高级批量合并,甚至从数据源拉取收件人。

基本发送示例

此示例演示了基本发送。

基本发送复杂示例

此示例演示了基本发送的许多功能,包括添加多个收件人、添加消息和邮件ID以及添加嵌入图像。

从HTML文件发送基本发送

此示例演示了如何从HTML文件中读取HTML内容,而不是直接传递字符串。

从SocketLabs API模板发送基本发送

此示例演示了发送在SocketLabs Email Designer中创建的内容。这还称为API模板功能。

使用指定字符集的基本发送

此示例演示了使用特定字符集进行发送。

带有文件附件的基本发送

此示例演示了如何将文件附件添加到您的消息中。

带有自定义电子邮件头的基本发送

此示例演示了如何向您的电子邮件消息添加自定义头。

带有嵌入图像的基本发送

此示例演示了如何在您的消息中嵌入图像。

带有Web代理的基本发送

此示例演示了如何使用HTTP客户端使用代理。

启用重试的基本发送

此示例演示了如何使用HTTP客户端使用重试逻辑。

带有Amp的基本发送

此示例演示了如何发送带有AMP Html正文的普通消息。有关AMP的更多信息,请参阅AMP项目

带有无效文件附件的基本发送

此示例演示了尝试使用无效附件进行发送的结果。

带有无效发送地址的基本发送

此示例演示了尝试使用无效发送地址进行发送的结果。

带有无效收件人的基本发送

此示例演示了尝试使用无效收件人进行发送的结果。

带有多个收件人的批量发送

此示例演示了如何向多个收件人发送批量消息。

带有附件的复杂合并的批量发送

此示例演示了BulkMessage()的许多功能,包括添加多个收件人、合并数据和添加附件。

从数据源拉取收件人的批量发送

此示例使用模拟存储库类来演示您如何从数据库中拉取收件人并创建带有合并数据的批量邮件。

带有Ascii字符集和特殊字符的批量发送

此示例演示了如何使用指定字符集和特殊字符发送批量消息。

带有合并数据的批量发送

此示例演示了如何向多个收件人发送带有每个收件人独特合并数据的批量消息。

带有Amp的批量发送

此示例演示了如何发送带有AMP Html正文的批量消息。有关AMP的更多信息,请参阅AMP项目

版本

  • 1.4.5 - 在RetryHandler中添加错误处理
  • 1.4.4 - 移除调试代码
  • 1.4.3 - 添加MetadataOrTagsAreTooLarge错误信息
  • 1.4.2 - 添加API密钥授权
  • 1.4.0 - 添加元数据和标签
  • 1.2.1 - 添加对HTTP请求的可选重试逻辑。如果配置,当发生某些500错误(500、502、503、504)时,请求将重试
  • 1.1.2 - 添加对PHP 8.0的支持
  • 1.1.1 - 在客户端为Http请求添加请求超时值
  • 1.1.0 - 添加了Amp Html支持
  • 1.0.0 - 初次发布

许可

SocketLabs.EmailDelivery库以及所有相关代码,包括任何代码示例,都遵循MIT许可协议