laravel5.5 sendCloud 发送邮件(sendCloud Api and naux/sendcloud )
2018-02-07 10:20
447 查看
laravel5.5 推荐邮件驱动 MailGun SparkPost SES 都有限制(向一个邮箱发送邮件,必须要让邮件供应商和被发送人确认后才可以)
所以实际生产中没有办法使用默认驱动, 国内最常用的SendCloud
也可以使用 naux/sendcloud 实现无缝使用laravel Mail 语法, 但是需要注意版本:
注意:
1. Laravel 5.5 以下请使用 1.1.3 版本
2. 部署:
composer require naux/sendcloud
config/app.php 添加 \Naux\Mail\SendCloudServiceProvider::class,
.env
MAIL_DRIVER=sendcloud
SEND_CLOUD_USER= # 创建的 api_user
SEND_CLOUD_KEY= # 分配的 api_key
下面是Api操作模板的实例
注意: 1. xsmtpapi 是X-SMTP扩展字段, base64编码封装过的json字符串, 但是json条用的时候 传入json字符串就可以了
2. X-SMTP 每一个key对用的是数组(在json_encode之前)
所以实际生产中没有办法使用默认驱动, 国内最常用的SendCloud
也可以使用 naux/sendcloud 实现无缝使用laravel Mail 语法, 但是需要注意版本:
注意:
1. Laravel 5.5 以下请使用 1.1.3 版本
2. 部署:
composer require naux/sendcloud
config/app.php 添加 \Naux\Mail\SendCloudServiceProvider::class,
.env
MAIL_DRIVER=sendcloud
SEND_CLOUD_USER= # 创建的 api_user
SEND_CLOUD_KEY= # 分配的 api_key
下面是Api操作模板的实例
注意: 1. xsmtpapi 是X-SMTP扩展字段, base64编码封装过的json字符串, 但是json条用的时候 传入json字符串就可以了
2. X-SMTP 每一个key对用的是数组(在json_encode之前)
<?php namespace App\SendCloud; use App\User; class SendCloud { // 模板发送邮件Api private $url = 'http://api.sendcloud.net/apiv2/mail/sendtemplate'; /** * @param User $user 用户对象 * @param string $template 模板名称 * @param string $subject 主题 * @param array $params 希望传递的变量 eg: ['%name%' => [$user->name], '%confirm_code%' => [$user->confirm_code]] * @return bool|string */ public function sendCloud(User $user, $template, $subject, $params = []) { // $params = ['%name%' => [$object_user->name], '%route%' => ['verify/' . $object_user->confirm_code]]; // (new SendCloud())->sendCloud($object_user, 'register', '用户激活账号邮件', $params); $x_smtpapi = json_encode(['to' => [$user->email], 'sub' => $params]); $param = [ 'apiUser' => env('SENDCLOUD_API_USER'), 'apiKey' => env('SENDCLOUD_API_KEY'), 'from' => env('SENDCLOUD_FORM'), 'fromName' => env('SENDCLOUD_FORM_NAME'), 'subject' => $subject, 'templateInvokeName' => $template, 'respEmailId' => 'true', 'xsmtpapi' => $x_smtpapi ]; $data = http_build_query($param); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $data )); $context = stream_context_create($options); return file_get_contents($this->url, false, $context); } }
相关文章推荐
- Laravel5.5使用sendcloud发送邮件
- .Net中使用SendGrid Web Api发送邮件(附源码)
- so_document_send_api1邮件发送
- .Net中使用SendGrid Web Api发送邮件(附源码)
- Lumen / Laravel 5.5 使用网易邮箱 SMTP 发送邮件
- .Net中使用SendGrid Web Api发送邮件(附源码)
- 使用搜狐Sendcloud的Webapi发送邮件:Jodd和Apache Httpclient
- laravel队列发送邮件报错
- JavaMail API发送和接收邮件
- 通过Spring Mail Api发送邮件
- prjSendMailInUniversity - How to send email using VB &amp; Winsock - 邮件发送接收程序 - VB6 + Winsock
- 工作流不发送邮件给审批人Approval Workflow does not send Email to approvers
- 用过http api 发送邮件
- 利用python调用elasticsearch-api来分析数据并作图进行日报邮件发送
- SendEmail java发送邮件
- Windows Azure Cloud Service (28) 在Windows Azure发送邮件(中)
- Windows Azure Cloud Service (29) 在Windows Azure发送邮件(下)
- Laravel5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心
- javaMail SMTPSendFailedException: java邮件发送常见的异常类型
- 用javaMail API实现邮件发送