SendGridを初めて使用、テキストにしたいのに...余計なHTMLメールを消す方法

とあるシステム開発において、システムからメールを送信する機能が必要となり色々検討した結果、SendGridのAPIを使うことにしました。

SendGridとは

メール配信サービスで、メールサーバの構築は不要です。

システムはAWSのEC2にWEBサーバを構築してます。
色々調べてみると「Amazon EC2 Eメール上限緩和申請」、「逆引き(rDNS)設定申請」などの手続きが必要なため、もっと楽な方法で実現したい。

お金もあまりかけたくない。
メール送信数は12,000通/月を超えなければ無料のプランを利用可能。

あとは一番大事なのが業務システムなのでメールが届かないといったことが無いようにしないといけない。
送り先には、携帯キャリアメールも存在するので弾かれないようしなければならない。

SendGridは弾かれたことを解析できることが出来ます。

メール到達率を向上させるための仕組みも色々用意されていて、説明が丁寧にされています。

あとはタイミング良くセミナーが開催されているのと、メールでの問い合わせに丁寧に対応いただけました。
セミナー後にはわからないことをしつこく聞いても付き合ってくれました。

SendGridでメール送信

システムの開発言語はPHPでLaravelフレームワークを使用してます。
まずは、Laravelで使えるようにします。

composer.jsonのrequireに”sendgrid/sendgrid”: “6.0”の行を追加します。

        "name": "laravel/laravel",
        "description": "The Laravel Framework.",
        "keywords": ["framework", "laravel"],
        "license": "MIT",
        "require": {
                "tecnick.com/tcpdf": "6.*",
                "maatwebsite/excel": "1.*",
                "sendgrid/sendgrid": "6.0"
        },

「composer update」コマンドを実行して追加します。

APIキーが必要なのでAPIキーを取得します。
SendGrid正式ページのAPI Keysを見て取得します。

あとは以下のサンプルコードを実行。(↓これもSendGrid正式ページから取得)

<?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();

ここからが余計なHTMLメールを消す方法

“text/plain”を指定しているのに、余計なHTMLメールが付いてきてします。

↓の赤枠

HTML付きメール

これを無くすにはどうするかです。

SendGridログイン→SendGirdダッシュボード→Setting→Mail Settingと遷移。

MailSetting画面

Plain Contentを「ACTIVE」にします。

そうすると余計なHTMLメールが添付されなくなります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする