コピペでOK!PHPでSendGridで簡単にメールを送信する

メール受け取る人側の人がGmailなど無料で使えるメールを使っている人も多く、迷惑メールとして自動的に振り分けられて受信しても見てもらえないということがあります。
メールを送る場合、できるだけ迷惑メールにならないように送信する必要があります。
自前でメールサーバーを構築するというのは手間もかかります、そんなときに、役立つのがSendGridです。

SendGrid

SendGridは、クラウド型のシステムでアカウントを作成するだけで即日メールを送信でき、メールサーバーの構築が不要なメール配信システムです。相手先へのメールの到達性を高めるための機能が充実しています。送信したメールに「いつ何が起こったのか」などの詳細なログをリアルタイムで確認することができ、相手先がメールを見なかったり、届いていなかったりするなどの原因を究明し、次回のメール配信の参考にすることができます。クラウドサービスなのでメールサーバーを構築する必要がありません。
無料で使うことも可能です。

SendGridの無料枠


引用:SendGrid
SendGridの公式サイトの価格表を見ると月に1万2千通までは無料で使えます。
小さなWEBサービスでは無料枠で住むのではないでしょうか?

PHPで簡単にSendGridでメールを送る

PHPのcURL関数を使うと簡単にメールが送信できます。
引用元:API v3 概要

cURLをつかったSendGridでメールを送るサンプルコード

PHPのcURL関数を使ったサンプルを書いてみました。


function SendGrid($email,$sub,$message)
{
    $url = 'https://api.sendgrid.com/v3/mail/send'; // APIのURL
    $apikey = 'ここにAPIキー'; // 
    $mail_from = "送信元メールアドレスを記載してください"; 
  $mail_from_name="送信元の名前を記載してください。";

   $mail_to = $email; // 送信先メールアドレス
    $subject = $sub; // 件名
    $body = $message; // 本文


    $body_type = 'text/plain';
    $header = array(
        'Authorization: Bearer '.$apikey,
        'Content-Type: application/json',
    );
    $content = array(
        'personalizations' => array(
            array(
                'to' => array(
                    array(
                        'email' => $mail_to,
                    ),
                ),
                'subject' => $subject,
            ),
        ),
        'from' => array(
            'email' => $mail_from,
	     'name'=>$mail_from_name,
        ),
        'content' => array(
            array(
                'type' => $body_type,
                'value' => $body,
            ),
        ),
    );

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($content));
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, true);
    $response = curl_exec($curl);
    curl_close($curl);
}

コメントを残す