PHPとSendGridを使って添付ファイル送信する方法
- 2020年5月22日
- by SendGrid
- Category: 技術ネタ
この記事は Send Email Attachments Using Twilio SendGrid and PHP の抄訳です。
オンラインで注文を受けて請求書を送る、旅行日程表を送るなど、トランザクションメールにファイルを添付したい場合があります。特に、効率的なコミュニケーションを目指す企業は、このようなメールを積極的に活用しなくてはいけません。添付するファイルは、画像やビデオ、ドキュメントなど様々です。 Twilio SendGrind APIを使えば、シンプルな方法ですぐに実現できます。このチュートリアルでは、SendGridとPHPを使用して添付ファイルを送信する方法をご紹介します。
前提条件
ローカル開発環境に下記のものがインストールされていることを確認してください:
1. PHP version 7.0 or higher 2. Composer |
また、こちらのページから、SendGridの無料アカウントを取得しておいてください。
はじめに
ターミナルで次のコマンドを実行し、プロジェクトを設定します:
$ mkdir demo && cd demo $ touch email.php $ composer require sendgrid/sendgrid vlucas/phpdotenv
上記のコマンドを実行することで、プロジェクトファイル一式を保存するためのdemoというフォルダが作成されます。また、プロジェクトのビルドに役立つ2つのパッケージがインストールされます。vlucas/phpdotenvパッケージは環境変数をアプリケーションにロードするために使用し、sendgrid/sendgridパッケージはPHPアプリケーションからSendGrid APIへアクセスする機能を提供します。
SendGridのAPIキーの取得
メールを送信するためには、SendGridのAPIキーが必要です。SendGridでアカウントを作成した後、ダッシュボードの Settings > API Keys でAPIキーを作成します。下図のように、必ず Full Access を選択してください:
.env ファイルを作成するため、ターミナルで以下のコマンドを実行してください。
SENDGRID_API_KEY= your_sendgrid_api_key
次に、以下のように入力し、APIキーの値をペーストしてください。
$ touch .env
ファイルを添付したメールを送信する
お好きなコードエディタで、email.phpに以下のコードを追記します。
<?php require 'vendor/autoload.php'; $dotenv = Dotenv\Dotenv::create(__DIR__); $dotenv->load(); $email = new \SendGrid\Mail\Mail(); $email->setFrom("test@example.com", "Test User"); $email->setSubject("Send Email Attachments with Twilio SendGrid"); $email->addTo("felistaswaceera@gmail.com", "Example User"); $email->addContent( "text/html", "How easy can this be?" ); $file_encoded = base64_encode(file_get_contents('test.pdf')); $email->addAttachment( $file_encoded, "application/pdf", "test.pdf", "attachment" ); $sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY')); try { $response = $sendgrid->send($email); print 'Email sent successfuly' . "\n"; print 'Status Code: ' . $response->statusCode() . "\n"; } catch (Exception $e) { echo 'Caught exception: '. $e->getMessage(). "\n"; }
上記のコードは、設定された環境変数をロードし、setFromなどのメソッドを呼び出して、宛先にメールを送信するために使用するSendGridのMailクラスをインスタンス化します。
テストする
プロジェクトのルートディレクトリにPDFファイルを置いてください。そしてコード内のtest.pdfを追加したPDFファイルの名前に変更します。
ターミナルで、 php email.phpとコマンドを実行してください。そしてメールボックスに新着メールが届いているか確認してみましょう!
まとめ
このチュートリアルでは、Twilio SendGridとPHPを使用してメールで添付ファイルを送信する方法をご紹介しました。ぜひお試しください!