mailersend / mailersend
MailerSend PHP SDK
Requires
- php: ^7.4|^8.0
- ext-json: *
- beberlei/assert: ^3.2
- illuminate/collections: ^8.0 || ^9.0 || ^10.0 || ^11.0
- php-http/client-common: ^2.2
- php-http/discovery: ^1.9
- php-http/httplug: ^2.1
- psr/http-client-implementation: ^1.0
- psr/http-message: ^1.0 || ^2.0
- symfony/options-resolver: ^4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4.0
- guzzlehttp/psr7: ^1.5.2
- http-interop/http-factory-guzzle: ^1.0
- mockery/mockery: ^0.9.4
- php-http/guzzle7-adapter: ^0.1 || ^1.0
- php-http/message: ^1.0
- php-http/mock-client: ^1.0
- phpunit/phpunit: ^7.5.15 || ^8.4 || ^9.0
- dev-main
- v0.27.0
- v0.26.0
- v0.25.0
- v0.24.0
- v0.23.0
- v0.22.0
- v0.21.0
- v0.20.0
- v0.19.0
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.0
- v0.12.2
- v0.12.1
- v0.12.0
- v0.11.0
- v0.10.0
- v0.9.1
- v0.9.0
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.0
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2
- v0.1.1
- v0.1.0
- dev-feature/no-ref/api-token-restrictions
This package is auto-updated.
Last update: 2024-09-17 09:04:53 UTC
README
MailerSend PHP SDK
目录
- 安装
- 使用
- 调试验证错误
- 测试
- 支持和反馈
- 许可证
安装
要求
- PHP 7.4
- 基于PSR-7和PSR-18的HTTP适配器
- 从mailersend.com获取的API密钥
设置
从版本v0.22.0开始,本库与Laravel 8.0或更低版本不兼容。请使用较旧的SDK版本或更新您的Laravel版本。
本库基于PSR-7和PSR-18构建。您需要安装这些接口的实现。
composer require php-http/guzzle7-adapter nyholm/psr7
之后,您可以安装SDK。
composer require mailersend/mailersend
最后,添加一个名为MAILERSEND_API_KEY
的环境变量,并使用适当的API密钥。
可选的,尽管不推荐,您可以在实例化MailerSend
类时手动添加API密钥,如下所示
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'your_api_key']);
使用
电子邮件
发送电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setHtml('This is the HTML content') ->setText('This is the text content') ->setReplyTo('reply to') ->setReplyToName('reply to name'); $mailersend->email->send($emailParams);
HTML内容不是必需的。您仍然可以使用纯文本发送电子邮件。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setText('This is the text content'); $mailersend->email->send($emailParams);
添加抄送(Cc)和暗送(Bcc)收件人
带有CC和BCC发送电子邮件。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $cc = [ new Recipient('cc@mail.com', 'CC'), ]; $bcc = [ new Recipient('bcc@mail.com', 'BCC'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setCc($cc) ->setBcc($bcc) ->setSubject('Subject') ->setHtml('This is the HTML content') ->setText('This is the text content'); $mailersend->email->send($emailParams);
发送基于模板的电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $tags = ['tag']; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setTemplateId('ss243wdasd') ->setTags($tags); $mailersend->email->send($emailParams);
高级个性化
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Personalization; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $personalization = [ new Personalization('your@client.com', [ 'var' => 'variable', 'number' => 123, 'object' => [ 'key' => 'object-value' ], 'objectCollection' => [ [ 'name' => 'John' ], [ 'name' => 'Patrick' ] ], ]) ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject {$var}') ->setHtml('This is the html version with a {$var}.') ->setText('This is the text versions with a {$var}.') ->setPersonalization($personalization); $mailersend->email->send($emailParams);
发送带附件的电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Attachment; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $attachments = [ new Attachment(file_get_contents('attachment.jpg'), 'attachment.jpg') ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setHtml('This is the html version.') ->setText('This is the text version.') ->setAttachments($attachments); $mailersend->email->send($emailParams);
发送定时消息
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setHtml('This is the html version.') ->setText('This is the text version.') ->setSendAt(1665626400); ->setPrecedenceBulkHeader(true); $mailersend->email->send($emailParams);
发送带有优先级批量头部的电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setHtml('This is the html version.') ->setText('This is the text version.') ->setPrecedenceBulkHeader(true); $mailersend->email->send($emailParams);
发送带跟踪的电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setHtml('This is the HTML content') ->setText('This is the text content') ->setTrackClicks(true) ->setTrackOpens(true) ->setTrackContent(true); $mailersend->email->send($emailParams);
发送带自定义头部的电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; use MailerSend\Helpers\Builder\Header; $mailersend = new MailerSend(['api_key' => 'key']); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $headers = [ new Header('Custom-Header-1', 'Value 1') new Header('Custom-Header-2', 'Value 2') ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject') ->setHtml('This is the HTML content') ->setText('This is the text content') ->setHeaders($headers); $mailersend->email->send($emailParams);
批量电子邮件API
发送批量电子邮件
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; $mailersend = new MailerSend(); $bulkEmailParams = []; $bulkEmailParams[] = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients([ new Recipient('recipient1@client.com', 'Your Client'), ]) ->setSubject('Subject') ->setHtml('This is the HTML content') ->setText('This is the text content'); $bulkEmailParams[] = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients([ new Recipient('recipient2@client.com', 'Your Client'), ]) ->setSubject('Subject') ->setHtml('This is the HTML content') ->setText('This is the text content'); $mailersend->bulkEmail->send($bulkEmailParams);
获取批量电子邮件状态
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->bulkEmail->getStatus('bulk_email_id');
入站路由
获取入站路由列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->inbound->getAll($domainId = 'domainId', $page = 1, $limit = 10);
获取单个入站路由
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->inbound->find('inboundId');
添加入站路由
仅使用类的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Inbound; use \MailerSend\Helpers\Builder\CatchFilter; use \MailerSend\Helpers\Builder\MatchFilter; use \MailerSend\Helpers\Builder\Forward; use \MailerSend\Helpers\Builder\Filter; use \MailerSend\Common\Constants; $mailersend = new MailerSend(); $mailersend->inbound->create( (new Inbound('domainId', 'name', true)) ->setInboundDomain('inboundDomain') ->setCatchFilter( (new CatchFilter(Constants::TYPE_CATCH_RECIPIENT) ->addFilter(new Filter(Constants::COMPARER_EQUAL, 'test@mailersend.com')))) ->setMatchFilter( (new MatchFilter(Constants::TYPE_MATCH_SENDER)) ->addFilter(new Filter(Constants::COMPARER_EQUAL, 'sender@mailersend.com', 'sender'))) ->addForward(new Forward(Constants::COMPARER_EQUAL, 'value')) );
同时使用类和数组的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Inbound; use \MailerSend\Helpers\Builder\CatchFilter; use \MailerSend\Helpers\Builder\MatchFilter; use \MailerSend\Helpers\Builder\Forward; use \MailerSend\Common\Constants; $mailersend = new MailerSend(); $mailersend->inbound->create( (new Inbound('domainId', 'name', true)) ->setInboundDomain('inboundDomain') ->setCatchFilter( (new CatchFilter(Constants::TYPE_CATCH_RECIPIENT)) ->setFilters([ [ 'comparer' => Constants::COMPARER_EQUAL, 'value' => 'test@mailersend.com', ] ]) ) ->setMatchFilter( (new MatchFilter(Constants::TYPE_MATCH_SENDER)) ->setFilters([ [ 'comparer' => Constants::COMPARER_EQUAL, 'value' => 'sender@mailersend.com', 'key' => 'sender', ] ]) ) ->addForward(new Forward(Constants::COMPARER_EQUAL, 'value')) );
仅使用数组的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Inbound; use \MailerSend\Helpers\Builder\CatchFilter; use \MailerSend\Helpers\Builder\MatchFilter; use \MailerSend\Helpers\Builder\Forward; use \MailerSend\Common\Constants; $mailersend = new MailerSend(); $mailersend->inbound->create( (new Inbound('domainId', 'name', true)) ->setInboundDomain('inboundDomain') ->setCatchFilter([ 'type' => Constants::TYPE_CATCH_RECIPIENT, 'filters' => [ [ 'comparer' => Constants::COMPARER_EQUAL, 'value' => 'test@mailersend.com', ], ], ]) ->setMatchFilter([ 'type' => Constants::TYPE_MATCH_SENDER, 'filters' => [ [ 'comparer' => Constants::COMPARER_EQUAL, 'value' => 'sender@mailersend.com', 'key' => 'sender', ], ], ]) ->setForwards([ [ 'type' => Constants::COMPARER_EQUAL, 'value' => 'value', ] ]) );
更新入站路由
在“添加入站路由”中展示的构建Inbound
对象的示例也适用于此处。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Inbound; use \MailerSend\Helpers\Builder\CatchFilter; use \MailerSend\Helpers\Builder\MatchFilter; use \MailerSend\Helpers\Builder\Forward; use \MailerSend\Common\Constants; $mailersend = new MailerSend(); $mailersend->inbound->update( 'inboundId', (new Inbound('domainId', 'name', true)) ->setInboundDomain('inboundDomain') ->setCatchFilter( (new CatchFilter(Constants::TYPE_CATCH_ALL)) ) ->setMatchFilter(new MatchFilter(Constants::TYPE_MATCH_ALL)) ->addForward(new Forward(Constants::COMPARER_EQUAL, 'value')) );
删除入站路由
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->inbound->delete('inboundId');
活动
获取活动列表
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\ActivityParams; $mailersend = new MailerSend(); $activityParams = (new ActivityParams()) ->setPage(3) ->setLimit(15) ->setDateFrom(1623073576) ->setDateTo(1623074976) ->setEvent(['queued', 'sent']); $mailersend->activity->getAll('domainId', $activityParams);
获取单个活动
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\ActivityParams; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->activity->find('activity_id');
分析
按日期获取活动数据
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\ActivityAnalyticsParams; use MailerSend\Common\Constants; $mailersend = new MailerSend(); $activityAnalyticsParams = (new ActivityAnalyticsParams(100, 101)) ->setDomainId('domain_id') ->setGroupBy(Constants::GROUP_BY_DAYS) ->setTags(['tag']) ->setEvent(['queued', 'sent']); $mailersend->analytics->activityDataByDate($activityAnalyticsParams);
按国家查看打开情况
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\OpensAnalyticsParams; $mailersend = new MailerSend(); $opensAnalyticsParams = (new OpensAnalyticsParams(100, 101)) ->setDomainId('domain_id') ->setTags(['tag']); $mailersend->analytics->opensByCountry($opensAnalyticsParams);
按用户代理查看打开情况
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\OpensAnalyticsParams; $mailersend = new MailerSend(); $opensAnalyticsParams = (new OpensAnalyticsParams(100, 101)) ->setDomainId('domain_id') ->setTags(['tag']); $mailersend->analytics->opensByUserAgentName($opensAnalyticsParams);
按阅读环境查看打开情况
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\OpensAnalyticsParams; $mailersend = new MailerSend(); $opensAnalyticsParams = (new OpensAnalyticsParams(100, 101)) ->setDomainId('domain_id') ->setTags(['tag']); $mailersend->analytics->opensByReadingEnvironment($opensAnalyticsParams);
域名
获取域名列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->domain->getAll($page = 1, $limit = 10, $verified = true);
获取域名
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->domain->find('domain_id');
添加域名
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\DomainParams; $mailersend = new MailerSend(); $domainParams = (new DomainParams('domainName')) ->setReturnPathSubdomain('returnPath') ->setCustomTrackingSubdomain('customTracking') ->getInboundRoutingSubdomain('inboundRouting'); $mailersend->domain->create($domainParams);
删除域名
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->domain->delete('domain_id');
获取每个域名的收件人列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->domain->recipients($domainId = 'domain_id', $page = 1, $limit = 10);
更新域名设置
您可以设置所需的所有属性,一个或多个。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\DomainSettingsParams; $mailersend = new MailerSend(); $domainSettingsParam = (new DomainSettingsParams()) ->setSendPaused(true) ->setTrackClicks(true) ->setTrackOpens(false) ->setTrackUnsubscribe(false) ->setTrackContent(true) ->setTrackUnsubscribeHtml('html') ->setTrackUnsubscribePlain('plain') ->setCustomTrackingEnabled(true) ->setCustomTrackingSubdomain(false); $mailersend->domain->domainSettings($domainId = 'domain_id', $domainSettingsParam);
验证域名
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->domain->verify('domain_id');
获取DNS记录
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->domain->getDnsRecords('domain_id');
消息
获取消息列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->messages->get($limit = 100, $page = 3);
获取消息信息
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->messages->find('message_id');
计划消息
获取定时消息列表
use MailerSend\MailerSend; use \MailerSend\Common\Constants; $mailersend = new MailerSend(); $mailersend->scheduleMessages->getAll( 'domain_id', Constants::STATUS_SCHEDULED, $limit = 100, $page = 3 )
获取单个定时消息
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->scheduleMessages->find('message_id');
删除定时消息
use MailerSend\MailerSend; use \MailerSend\Common\Constants; $mailersend = new MailerSend(); $mailersend->scheduleMessages->delete('message_id');
令牌
获取所有令牌
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->token->getAll($page = 1, $limit = 10);
查找令牌
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->token->find('token_id');
创建令牌
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\TokenParams; $mailersend = new MailerSend(); $mailersend->token->create( new TokenParams('token name', 'domainId', TokenParams::ALL_SCOPES) );
出于安全原因,我们只允许在创建过程中令牌出现一次。为了查看创建的访问令牌,您可以这样做
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\TokenParams; $mailersend = new MailerSend(); $response = $mailersend->token->create( new TokenParams('token name', 'domainId', TokenParams::ALL_SCOPES) ); echo $response['body']['data']['accessToken'];
更改令牌名称
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\TokenParams; $mailersend = new MailerSend(); $mailersend->token->changeName('token_id', 'new name');
更新令牌
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\TokenParams; $mailersend = new MailerSend(); $mailersend->token->update('token_id', TokenParams::STATUS_PAUSE); // PAUSE $mailersend->token->update('token_id', TokenParams::STATUS_UNPAUSE); // UNPAUSE
删除令牌
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\TokenParams; $mailersend = new MailerSend(); $mailersend->token->delete('token_id');
收件人
获取收件人列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->recipients->get(null, $limit = 100, $page = 3); // Or for a specific domain $mailersend->recipients->get('domain_id', $limit = 100, $page = 3);
获取单个收件人
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->recipients->find('recipient_id');
删除收件人
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->recipients->delete('recipient_id');
将收件人添加到抑制列表
黑名单
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\BlocklistParams; $mailersend = new MailerSend(); $params = (new BlocklistParams()) ->setDomainId('domain_id') ->setRecipients(['recipient_one', 'recipient_two']) ->setPatterns(['pattern_one', 'pattern_two']); $mailersend->blocklist->create($params);
硬退信
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SuppressionParams; $mailersend = new MailerSend(); $params = (new SuppressionParams()) ->setDomainId('domain_id') ->setRecipients(['recipient_one', 'recipient_two']); $mailersend->hardBounce->create($params);
垃圾邮件投诉
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SuppressionParams; $mailersend = new MailerSend(); $params = (new SuppressionParams()) ->setDomainId('domain_id') ->setRecipients(['recipient_one', 'recipient_two']); $mailersend->spamComplaint->create($params);
退订
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SuppressionParams; $mailersend = new MailerSend(); $params = (new SuppressionParams()) ->setDomainId('domain_id') ->setRecipients(['recipient_one', 'recipient_two']); $mailersend->unsubscribe->create($params);
从抑制列表中删除收件人
黑名单
use MailerSend\MailerSend; $mailersend = new MailerSend(); // Delete specific instances $mailersend->blocklist->delete(['id_one', 'id_two']); // or delete all $mailersend->blocklist->delete(null, true); // You can also specify the domain $mailersend->blocklist->delete(['id'], false, 'domain_id');
硬退信
use MailerSend\MailerSend; $mailersend = new MailerSend(); // Delete specific instances $mailersend->hardBounce->delete(['id_one', 'id_two']); // or delete all $mailersend->hardBounce->delete(null, true); // You can also specify the domain $mailersend->hardBounce->delete(['id'], false, 'domain_id');
垃圾邮件投诉
use MailerSend\MailerSend; $mailersend = new MailerSend(); // Delete specific instances $mailersend->spamComplaint->delete(['id_one', 'id_two']); // or delete all $mailersend->spamComplaint->delete(null, true); // You can also specify the domain $mailersend->spamComplaint->delete(['id'], false, 'domain_id');
退订
use MailerSend\MailerSend; $mailersend = new MailerSend(); // Delete specific instances $mailersend->unsubscribe->delete(['id_one', 'id_two']); // or delete all $mailersend->unsubscribe->delete(null, true); // You can also specify the domain $mailersend->unsubscribe->delete(['id'], false, 'domain_id');
待办列表
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); // Delete specific instances $mailersend->onHoldList->delete(['id_one', 'id_two']); // or delete all $mailersend->onHoldList->delete(null, true);
从抑制列表中获取收件人
黑名单
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->blocklist->getAll('domain_id', 15);
硬退信
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->hardBounce->getAll('domain_id', 15);
垃圾邮件投诉
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->spamComplaint->getAll('domain_id', 15);
退订
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->unsubscribe->getAll('domain_id', 15);
待办列表
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->onHoldList->getAll('domain_id', 15);
Webhooks
获取Webhooks列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->webhooks->get('domain_id');
获取Webhook
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->webhooks->find('webhook_id');
创建Webhook
use MailerSend\Helpers\Builder\WebhookParams; use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->webhooks->create( new WebhookParams('https://webhook_url', 'Webhook name', WebhookParams::ALL_ACTIVITIES, 'domain_id') ); // Or a disabled webhook $mailersend->webhooks->create( new WebhookParams('https://webhook_url', 'Webhook name', WebhookParams::ALL_ACTIVITIES, 'domain_id', false) );
更新Webhook
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\WebhookParams; $mailersend = new MailerSend(); $mailersend->webhooks->update('webhook_id', 'https://webhook_url', 'Webhook name', WebhookParams::ALL_ACTIVITIES); // Enable webhook $mailersend->webhooks->update('webhook_id', 'https://webhook_url', 'Webhook name', WebhookParams::ALL_ACTIVITIES, true); // Disable webhook $mailersend->webhooks->update('webhook_id', 'https://webhook_url', 'Webhook name', WebhookParams::ALL_ACTIVITIES, false);
删除Webhook
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->webhooks->delete('webhook_id');
如果某些端点目前不可用,请使用cURL
和其他可用工具来访问它。 更多信息请参考官方API文档。
模板
获取模板列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); // Get all templates of an account $mailersend->template->getAll(); // Get all templates of a domain $mailersend->template->getAll('domain_id'); // Get page 2 of templates with 20 records per page $mailersend->template->getAll('domain_id', 2, 20);
获取单个模板
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->template->find('template_id');
删除模板
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->template->delete('template_id');
电子邮件验证
获取所有电子邮件验证列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->emailVerification->getAll($page = 1, $limit = 10);
获取电子邮件验证列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->emailVerification->find('email_verification_id');
创建电子邮件验证列表
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\EmailVerificationParams; $mailersend = new MailerSend(); $emailVerificationParams = (new EmailVerificationParams('file.csv')) ->setEmailAddresses(['test@mail.com']); $mailersend->emailVerification->create($emailVerificationParams);
验证电子邮件列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->emailVerification->verify('email_verification_id');
获取电子邮件验证列表结果
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\EmailVerificationParams; $mailersend = new MailerSend(); $mailersend->emailVerification->getResults( $emailVerificationId = 'email_verification_id', $page = 1, $limit = 10, $results = [ EmailVerificationParams::TYPO, EmailVerificationParams::CATCH_ALL, ], );
短信
发送短信
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsParams; $mailersend = new MailerSend(); $smsParams = (new SmsParams()) ->setFrom('+12065550101') ->setTo(['+12065550102']) ->addRecipient('+12065550103') ->setText('Text'); $sms = $mailersend->sms->send($smsParams);
个性化
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsParams; $mailersend = new MailerSend(); $smsParams = (new SmsParams()) ->setFrom('+12065550101') ->setTo(['+12065550102']) ->setText('Text {{ var }}') ->setPersonalization([ new SmsPersonalization('+12065550102', [ 'var' => 'variable', 'number' => 123, 'object' => [ 'key' => 'object-value' ], 'objectCollection' => [ [ 'name' => 'John' ], [ 'name' => 'Patrick' ] ], ]) ]); $sms = $mailersend->sms->send($smsParams);
短信电话号码
获取短信电话号码列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $sms = $mailersend->smsNumber->getAll($page = 1, $limit = 10, $paused = true);
获取单个SMS电话号码
use MailerSend\MailerSend; $mailersend = new MailerSend(); $sms = $mailersend->smsNumber->find('sms_number_id');
更新单个SMS电话号码
use MailerSend\MailerSend; $mailersend = new MailerSend(); $sms = $mailersend->smsNumber->update('sms_number_id', $paused = true);
删除SMS电话号码
use MailerSend\MailerSend; $mailersend = new MailerSend(); $sms = $mailersend->smsNumber->delete('sms_number_id');
SMS消息API
获取SMS消息列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsMessages = $mailersend->smsMessage->getAll($page = 1, $limit = 10);
获取单个SMS消息
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsMessage = $mailersend->smsMessage->find('sms_message_id');
短信活动API
获取SMS活动列表
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsActivityParams; $mailersend = new MailerSend(); $smsActivityParams = (new SmsActivityParams()) ->setSmsNumberId('sms_number_id') ->setDateFrom(1623073576) ->setDateTo(1623074976) ->setStatus(['queued']) ->setPage(3) ->setLimit(15); $smsActivity = $mailersend->smsActivity->getAll($smsActivityParams);
短信收件人API
获取SMS收件人列表
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsRecipientParams; $mailersend = new MailerSend(); $smsRecipientParams = (new SmsRecipientParams()) ->setSmsNumberId('sms_number_id') ->setStatus('opt_out') ->setPage(3) ->setLimit(15); $smsRecipients = $mailersend->smsRecipient->getAll($smsRecipientParams);
获取单个SMS收件人
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsRecipient->find('sms_recipient_id');
更新单个SMS收件人
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsRecipient->update('sms_recipient_id', $status = 'opt_out');
SMS webhooks API
获取SMS webhooks列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsWebhook->get('sms_number_id');
获取单个SMS webhook
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsWebhook->find('sms_webhook_id');
创建单个短信Webhook
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsWebhookParams; $mailersend = new MailerSend(); $smsWebhookParams = (new SmsWebhookParams()) ->setSmsNumberId('sms_number_id') ->setName('Name') ->setUrl('https://mailersend.com/sms_webhook') ->setEvents(['sms.sent', 'sms.delivered', 'sms.failed']) ->setEnabled(false); $smsRecipients = $mailersend->smsWebhook->create($smsWebhookParams);
更新单个SMS webhook
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsWebhookParams; $mailersend = new MailerSend(); $smsWebhookParams = (new SmsWebhookParams()) ->setSmsNumberId('sms_number_id') ->setName('Name') ->setUrl('https://mailersend.com/sms_webhook') ->setEvents(['sms.sent', 'sms.delivered', 'sms.failed']) ->setEnabled(false); $smsRecipients = $mailersend->smsWebhook->update($smsWebhookParams);
SMS入站路由API
获取SMS入站路由列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsInbound->getAll($smsNumberId = 'sms_number_id', $enabled = true, $page = 3, $limit = 15);
获取单个SMS入站路由
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsInbound->find('sms_inbound_id');
添加SMS入站路由
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsInbound; use MailerSend\Helpers\Builder\SmsInboundFilter; $mailersend = new MailerSend(); $smsInboundParams = (new SmsInbound()) ->setSmsNumberId('sms_number_id') ->setName('Name') ->setForwardUrl('https://mailersend.com/inbound_webhook') ->setFilter(new SmsInboundFilter($comparer = 'starts-with', $value = 'Stop')) ->setEnabled(true); $smsRecipients = $mailersend->smsInbound->create($smsInboundParams);
更新入站路由
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SmsInbound; use MailerSend\Helpers\Builder\SmsInboundFilter; $mailersend = new MailerSend(); $smsInboundParams = (new SmsInbound()) ->setSmsNumberId('sms_number_id') ->setName('Name') ->setForwardUrl('https://mailersend.com/inbound_webhook') ->setFilter(new SmsInboundFilter($comparer = 'starts-with', $value = 'Stop')) ->setEnabled(true); $smsRecipients = $mailersend->smsInbound->update('sms_inbound_id', $smsInboundParams);
删除入站路由
use MailerSend\MailerSend; $mailersend = new MailerSend(); $smsRecipients = $mailersend->smsInbound->delete('sms_inbound_id');
发送者身份
获取发送者身份列表
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->senderIdentity->getAll($domainId = 'domainId', $page = 1, $limit = 10);
获取单个发送者身份
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->senderIdentity->find('identityId');
通过电子邮件获取单个发送者身份
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->senderIdentity->findByEmail('email');
添加发送者身份
仅使用类的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SenderIdentity; $mailersend = new MailerSend(); $mailersend->senderIdentity->create( (new SenderIdentity('domainId', 'name', 'email')) );
使用所有选项的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SenderIdentity; $mailersend = new MailerSend(); $mailersend->senderIdentity->create( (new SenderIdentity('domainId', 'name', 'email')) ->setReplyToName("John Doe") ->setReplyToEmail("john@test.com")) ->setAddNote(true) ->setPersonalNote("Hi John, please use this token") );
更新发送者身份
在“添加发送者身份”中展示的构建Sender Identity
对象的示例也适用于此处。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SenderIdentity; $mailersend = new MailerSend(); $mailersend->senderIdentity->update( 'identityId', (new SenderIdentity('domainId', 'name', 'email')) ->setReplyToName("John Doe") ->setReplyToEmail("john@test.com")) ->setAddNote(true) ->setPersonalNote("Hi John, please use this token") );
通过电子邮件更新发送者身份
在“添加发送者身份”中展示的构建Sender Identity
对象的示例也适用于此处。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\SenderIdentity; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->senderIdentity->updateByEmail( 'identityId', (new SenderIdentity('domainId', 'name', 'email')) ->setReplyToName("John Doe") ->setReplyToEmail("john@test.com")) ->setAddNote(true) ->setPersonalNote("Hi John, please use this token") );
删除发送者身份
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->senderIdentity->delete('identityId');
通过电子邮件删除发送者身份
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->senderIdentity->deleteByEmail('email');
SMTP用户
获取SMTP用户列表
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->smtpUser->getAll('domainId', 25);
获取单个SMTP用户
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->smtpUser->find('domainId', 'smtpUserId');
添加SMTP用户
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\UserParams; use MailerSend\Helpers\Builder\SmtpUserParams; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->smtpUser->create( 'domainId', (new SmtpUserParams('name')) ->setEnabled(false) );
更新SMTP用户
在“添加SMTP用户”中展示的构建SMTP User
对象的示例也适用于此处。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\UserParams; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->smtpUser->update( 'domainId', 'smtpUserId', (new SmtpUserParams('New name')) ->setEnabled(false) );
删除SMTP用户
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->smtpUser->delete('domainId', 'smtpUserId');
用户
获取用户列表
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->user->getAll();
获取单个用户
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->user->find('userId');
添加用户
仅使用类的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\UserParams; use MailerSend\Common\Roles; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->user->create( (new UserParams('email', Roles::ADMIN)) );
使用所有选项的示例
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\UserParams; use MailerSend\Common\Roles; use MailerSend\Common\Permissions; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->user->create( (new UserParams('email', Roles::CUSTOM_USER)) ->setDomains(['domainId', 'anotherDomainId']) ->setTemplates(['templateId', 'anotherTemplateId']) ->setPermissions([Permissions::READ_OWN_TEMPLATES]) ->setRequiresPeriodicPasswordChange(true) );
更新用户
在“添加用户”中展示的构建User
对象的示例也适用于此处。
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\UserParams; use MailerSend\Common\Roles; use MailerSend\Common\Permissions; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->user->update( 'userId', (new UserParams()) ->setRole(Roles::CUSTOM_USER) ->setDomains(['domainId', 'anotherDomainId']) ->setTemplates(['templateId', 'anotherTemplateId']) ->setPermissions([Permissions::READ_OWN_TEMPLATES]) ->setRequiresPeriodicPasswordChange(true) );
删除用户
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->user->delete('userId');
<a name="get-a-list-of-invites>
获取邀请列表
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->invite->getAll();
获取单个邀请
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->invite->find('inviteId');
重新发送邀请
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->invite->resend('inviteId');
<a name="cancel-an-invite>
取消邀请
use MailerSend\MailerSend; $mailersend = new MailerSend(['api_key' => 'key']); $mailersend->invite->cancel('inviteId');
其他端点
获取API配额
use MailerSend\MailerSend; $mailersend = new MailerSend(); $mailersend->apiQuota->get();
调试验证错误
use MailerSend\MailerSend; use MailerSend\Helpers\Builder\Recipient; use MailerSend\Helpers\Builder\EmailParams; use MailerSend\Exceptions\MailerSendValidationException; use MailerSend\Exceptions\MailerSendRateLimitException; $mailersend = new MailerSend(); $recipients = [ new Recipient('your@client.com', 'Your Client'), ]; $emailParams = (new EmailParams()) ->setFrom('your@domain.com') ->setFromName('Your Name') ->setRecipients($recipients) ->setSubject('Subject {$var}') ->setHtml('This is the html version with a {$var}.') ->setText('This is the text versions with a {$var}.'); try{ $mailersend->email->send($emailParams); } catch(MailerSendValidationException $e){ // See src/Exceptions/MailerSendValidationException.php for more more info print_r($e->getResponse()->getBody()->getContents()); print_r($e->getBody()); print_r($e->getHeaders()); print_r($e->getErrors()); print_r($e->getStatusCode()); } catch (MailerSendRateLimitException $e) { print_r($e->getHeaders()); print_r($e->getResponse()->getBody()->getContents()); }
测试
composer test
支持和反馈
如果您发现任何错误,请直接在此GitHub中提交问题。
欢迎您为任何其他编程语言创建SDK。
如果您在使用我们的API或SDK时遇到任何问题,请通过电子邮件info@mailersend.com联系我们的支持。
官方文档位于https://developers.mailersend.com