「Sendgrid」の版間の差分
(ページの作成:「 ==apiを作成== Settings/API keys ==新ドメイン登録連携== 2018/4/18以後 #sendgridのsettings/SenderAuthenticationからドメイン登録する #WhichDomainN...」) |
|||
(同じ利用者による、間の9版が非表示) | |||
行76: | 行76: | ||
$mail->setMailSettings($setting); | $mail->setMailSettings($setting); | ||
// ここまでbcc処理 | // ここまでbcc処理 | ||
+ | $response = $sg->client->mail()->send()->post($mail); | ||
+ | echo $response->statusCode(); | ||
+ | print_r($response->headers()); | ||
+ | echo $response->body(); | ||
+ | |||
+ | |||
+ | ===添付ファイルサンプル=== | ||
+ | $apiKey = getenv('SENDGRID_API_KEY'); | ||
+ | $sg = new \SendGrid($apiKey); | ||
+ | $from = new SendGrid\Email("Example User", "test@example.com"); | ||
+ | $subject = "Sending with SendGrid is Fun"; | ||
+ | $to = new SendGrid\Email("Example User", "test@example.com"); | ||
+ | $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); | ||
+ | $mail = new SendGrid\Mail($from, $subject, $to, $content); | ||
+ | // ここから添付ファイル処理 | ||
+ | $filePath = __DIR__ . "/hogehoge.png"; | ||
+ | $attachment = new SendGrid\Attachment(); | ||
+ | $handle = fopen($filePath, "rb"); | ||
+ | $contents = fread($handle, filesize($filePath)); | ||
+ | $attachment->setContent(base64_encode($contents)); | ||
+ | $attachment->setFilename("filename.png"); | ||
+ | $fileInfo = new FInfo(FILEINFO_MIME_TYPE); | ||
+ | $attachment->setType($fileInfo->file($filePath)); | ||
+ | $mail->addAttachment($attachment); | ||
+ | // ここまで添付ファイル処理 | ||
+ | $response = $sg->client->mail()->send()->post($mail); | ||
+ | echo $response->statusCode(); | ||
+ | print_r($response->headers()); | ||
+ | echo $response->body(); | ||
+ | |||
+ | |||
+ | ===マルチパート(text and html)サンプル=== | ||
+ | $apiKey = getenv('SENDGRID_API_KEY'); | ||
+ | $sg = new \SendGrid($apiKey); | ||
+ | $from = new SendGrid\Email("Example User", "test@example.com"); | ||
+ | $subject = "Sending with SendGrid is Fun"; | ||
+ | $to = new SendGrid\Email("Example User", "test@example.com"); | ||
+ | $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); | ||
+ | $mail = new SendGrid\Mail($from, $subject, $to, $content); | ||
+ | // ここから添付ファイル処理 | ||
+ | <nowiki>$mail->addContent(new SendGrid\Content("text/html", "and <b>hoge</b><br /><font color=red>red</font>"));</nowiki> | ||
+ | // ここまで添付ファイル処理 | ||
$response = $sg->client->mail()->send()->post($mail); | $response = $sg->client->mail()->send()->post($mail); | ||
echo $response->statusCode(); | echo $response->statusCode(); | ||
行93: | 行135: | ||
Settings/SubuserManagementでアカウントを作成すれば、そのアカウントで同様にsendgrid管理システムに入れる | Settings/SubuserManagementでアカウントを作成すれば、そのアカウントで同様にsendgrid管理システムに入れる | ||
− | == | + | ==改行されない場合== |
− | + | テキストのみの場合は自動でhtmlを生成するようになっている。 | |
− | $content = new SendGrid\Content("text/plain", "hoge\ | + | settings/MailSettings/PlainContentをoffにすると自動html生成機能を切ることができるが、 |
+ | urlなどがあると自動で機能するようで。pタグで囲ってしまう。 | ||
+ | どうしてもだめなら、htmlを手動で追加してマルチパートで送れば良い。 | ||
+ | <nowiki>$content = new SendGrid\Content("text/plain", "hoge\nhoge\n"); | ||
+ | $mail->addContent(new SendGrid\Content("text/html", "hoge<br />hoge<br />"));</nowiki> | ||
==oemについて== | ==oemについて== | ||
行111: | 行157: | ||
10000リクエスト/秒 | 10000リクエスト/秒 | ||
https://sendgrid.kke.co.jp/docs/API_Reference/Web_API_v3/Mail/index.html | https://sendgrid.kke.co.jp/docs/API_Reference/Web_API_v3/Mail/index.html | ||
+ | |||
+ | ==sendgridのメール送信状態== | ||
+ | 管理画面/Activityで確認できる。(7日で消える) | ||
+ | |||
+ | Processed:メール送信リクエストの受付 | ||
+ | Delivered:受信側サーバによるメール受付 | ||
+ | Bounces:バウンス | ||
+ | Deferred:遅延 | ||
+ | Drops:送信リクエストの破棄 | ||
+ | Spam Reports:迷惑メール報告 | ||
+ | Unsubscribes、Group Unsubscribes、Group Resubscribes:配信停止または配信停止の解除 | ||
+ | Opens:メールの開封 | ||
+ | Clicks:リンクのクリック | ||
+ | Parse:Inbound Parse Webhookでのメール受信 | ||
+ | |||
+ | https://sendgrid.kke.co.jp/blog/?p=1273 | ||
+ | |||
+ | 7日で消えないようにするには、自分で用意したサーバにpost(EventWebhook)してもらうことで対応できる。 | ||
+ | https://sendgrid.kke.co.jp/docs/User_Manual_JP/email_activity.html |
2018年5月25日 (金) 11:33時点における最新版
目次
apiを作成
Settings/API keys
新ドメイン登録連携
2018/4/18以後
- sendgridのsettings/SenderAuthenticationからドメイン登録する
- WhichDomainNameServerでDNSHostを選択(選択にない場合は入力不要)
- linksは後で設定可能なのでNoとする
- DomainYouSendFromにドメインを追加する(サブドメでも良い)
- AdvancedSettingを開きUse automaticed securityをonにしておく
- 表示された3つのcnameを登録する
参考:https://sendgrid.kke.co.jp/docs/Tutorials/D_Improve_Deliverability/using_whitelabel.html
旧ドメイン登録連携
2018/4/18以前
- sendgridのsettings/whitelabelからドメイン登録する
- AUTOMATED SECURITYをonにしておく
- 表示された3つのcnameを登録する
DKIM,SPF
上記ドメイン連携すれば適応できる
phpの場合
composer設定
composer.json { "require": { "sendgrid/sendgrid": "~6.0" } }
サンプル
<?php // using SendGrid's PHP Library // https://github.com/sendgrid/sendgrid-php // If you are using Composer (recommended) require 'vendor/autoload.php'; // If you are not using Composer // require("path/to/sendgrid-php/sendgrid-php.php"); $from = new SendGrid\Email("Example User", "test@example.com"); $subject = "Sending with SendGrid is Fun"; $to = new SendGrid\Email("Example User", "test@example.com"); $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); $mail = new SendGrid\Mail($from, $subject, $to, $content); $apiKey = getenv('SENDGRID_API_KEY'); $sg = new \SendGrid($apiKey); $response = $sg->client->mail()->send()->post($mail); echo $response->statusCode(); print_r($response->headers()); echo $response->body();
https://sendgrid.kke.co.jp/docs/Integrate/Code_Examples/v3_Mail/php.html
https://github.com/sendgrid/sendgrid-php#usage
https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html
bccサンプル
$apiKey = getenv('SENDGRID_API_KEY'); $sg = new \SendGrid($apiKey); $from = new SendGrid\Email("Example User", "test@example.com"); $subject = "Sending with SendGrid is Fun"; $to = new SendGrid\Email("Example User", "test@example.com"); $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); $mail = new SendGrid\Mail($from, $subject, $to, $content); // ここからbcc処理 $bcc = new SendGrid\BccSettings(); $bcc->setEmail("bcc@example.com"); $bcc->setEnable(true); $setting = new SendGrid\MailSettings(); $setting->setBccSettings($bcc); $mail->setMailSettings($setting); // ここまでbcc処理 $response = $sg->client->mail()->send()->post($mail); echo $response->statusCode(); print_r($response->headers()); echo $response->body();
添付ファイルサンプル
$apiKey = getenv('SENDGRID_API_KEY'); $sg = new \SendGrid($apiKey); $from = new SendGrid\Email("Example User", "test@example.com"); $subject = "Sending with SendGrid is Fun"; $to = new SendGrid\Email("Example User", "test@example.com"); $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); $mail = new SendGrid\Mail($from, $subject, $to, $content); // ここから添付ファイル処理 $filePath = __DIR__ . "/hogehoge.png"; $attachment = new SendGrid\Attachment(); $handle = fopen($filePath, "rb"); $contents = fread($handle, filesize($filePath)); $attachment->setContent(base64_encode($contents)); $attachment->setFilename("filename.png"); $fileInfo = new FInfo(FILEINFO_MIME_TYPE); $attachment->setType($fileInfo->file($filePath)); $mail->addAttachment($attachment); // ここまで添付ファイル処理 $response = $sg->client->mail()->send()->post($mail); echo $response->statusCode(); print_r($response->headers()); echo $response->body();
マルチパート(text and html)サンプル
$apiKey = getenv('SENDGRID_API_KEY'); $sg = new \SendGrid($apiKey); $from = new SendGrid\Email("Example User", "test@example.com"); $subject = "Sending with SendGrid is Fun"; $to = new SendGrid\Email("Example User", "test@example.com"); $content = new SendGrid\Content("text/plain", "and easy to do anywhere, even with PHP"); $mail = new SendGrid\Mail($from, $subject, $to, $content); // ここから添付ファイル処理 $mail->addContent(new SendGrid\Content("text/html", "and <b>hoge</b><br /><font color=red>red</font>")); // ここまで添付ファイル処理 $response = $sg->client->mail()->send()->post($mail); echo $response->statusCode(); print_r($response->headers()); echo $response->body();
ステータスコード一覧
https://sendgrid.kke.co.jp/docs/API_Reference/Web_API_v3/How_To_Use_The_Web_API_v3/responses.html
サブアカウントを作成
Settings/Teammatesで作成する
サブユーザを作成
複数の独立した環境(子アカウント)を作成する機能。 テスト環境や、送信するメールの種類に応じて環境を使い分けることができる。
Settings/SubuserManagementでアカウントを作成すれば、そのアカウントで同様にsendgrid管理システムに入れる
改行されない場合
テキストのみの場合は自動でhtmlを生成するようになっている。 settings/MailSettings/PlainContentをoffにすると自動html生成機能を切ることができるが、 urlなどがあると自動で機能するようで。pタグで囲ってしまう。 どうしてもだめなら、htmlを手動で追加してマルチパートで送れば良い。
$content = new SendGrid\Content("text/plain", "hoge\nhoge\n"); $mail->addContent(new SendGrid\Content("text/html", "hoge<br />hoge<br />"));
oemについて
SendGridを自社サービスに組み込む際の注意事項 https://support.sendgrid.kke.co.jp/hc/ja/articles/205590193 にあるとおり、 https://sendgrid.kke.co.jp/terms/ のOEM利用規約を盛り込む必要があり、sendgridの問い合わせフォームに連絡する必要がある。
宛先指定可能件数
1つのコンテンツに対して1000件まで https://sendgrid.kke.co.jp/docs/API_Reference/Web_API_v3/Mail/index.html
秒間リクエスト件数
10000リクエスト/秒 https://sendgrid.kke.co.jp/docs/API_Reference/Web_API_v3/Mail/index.html
sendgridのメール送信状態
管理画面/Activityで確認できる。(7日で消える)
Processed:メール送信リクエストの受付 Delivered:受信側サーバによるメール受付 Bounces:バウンス Deferred:遅延 Drops:送信リクエストの破棄 Spam Reports:迷惑メール報告 Unsubscribes、Group Unsubscribes、Group Resubscribes:配信停止または配信停止の解除 Opens:メールの開封 Clicks:リンクのクリック Parse:Inbound Parse Webhookでのメール受信
https://sendgrid.kke.co.jp/blog/?p=1273
7日で消えないようにするには、自分で用意したサーバにpost(EventWebhook)してもらうことで対応できる。 https://sendgrid.kke.co.jp/docs/User_Manual_JP/email_activity.html