postfix
SendGrid
gcp

GCPのインスタンス上でメールを送信する(SendGrid+postfix)

More than 1 year has passed since last update.


はじめに

GCP Compute Engineインスタンスからは単独でメールを送信する事ができません。

メールが使えないと不便な事が多いですよね。

ここでは「SendGrid」というクラウドサービスを使い、インスタンス上からメールを送信する手順を紹介します。


SendGridとは

米SendGrid社によって2009年から提供されているクラウドベースのメール配信サービスで、月間3億通超のメール配信を行っているそうです。

このサービスには無料プランがあり、1日あたり100通以内のメール配信であれば無料で利用する事ができます。

詳細は「Pricing - SendGrid」をご覧ください。


SendGrid登録

以下の手順でSendGridにフリーアカウントを登録します。この時点ではクレジットカードの登録は必要ありません。



  1. トップページより「Sign Up」をクリックします

  2. 次のページ(価格一覧ページ)で「Try for Free」をクリックします

  3. 必要項目を入力し「Create Account」をクリックします

  4. プロフィールを入力し「Save」をクリックします

  5. 確認メールが届くので「Confirm Email Address」をクリックします

以上で登録は完了です。

※「Settings - Account Details」メニューよりタイムゾーンを変更しておくのをおすすめします。


APIキーの作成

サーバからSendGridを使用するため、以下の手順でAPIキーを作成します。


  1. 「Settings - API Keys」をクリックします

  2. 「Create API Key」をクリックします

  3. APIキーの名前とアクセス権限を設定し、「Create & View」をクリックします

  4. 完了画面に表示されるAPIキーをメモしておきましょう(※このキーは二度と表示されません

  5. 「Done」をクリックします

以上でAPIキーの作成は完了です。


アクセス元IPアドレスの制限

もしメール配信を利用するサーバが固定IPアドレスを持っている場合、こちらの設定をおすすめします。

この設定を行った場合、許可IPアドレス外からメールを配信する事ができなくなります


  1. 「Settings - IP Access Management」をクリックします

  2. 「+ Add IP Addresses」をクリックします

  3. 初回は同意画面がでますので、確認のうえチェックボックスにチェックし「Confirm and Continue」をクリックします

  4. 「IP address(es) or range」の欄にIPアドレスまたはIPアドレス範囲を記入します

  5. 「Save」をクリックします


Postfixインストール

今回はメールサーバとしてPostfixを使用します。

yumを使い以下の手順でインストールします。

yum -y install postfix cyrus-sasl-plain cyrus-sasl-md5 mailx

次に、postfix設定ファイルを開き、以下の内容を追記します。

「[PASTE_YOUR_KEY]」の部分は、先ほど作成したAPIキーを設定しましょう。


/etc/postfix/main.cf

# configure sendgrid

relayhost = [smtp.sendgrid.net]:2525
smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:apikey:[PASTE_YOUR_KEY]
header_size_limit = 4096000
smtp_sasl_security_options = noanonymous

設定が完了したら、postfixの設定をリロードします。

postfix reload

これでサーバ上からメールが送信できるようになりました。

以下のコマンドにてテストメールを送ってみましょう。

echo 'This is test mail.' | mail -s TestMail [YOUR_MAIL_ADDRESS]