Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@ariaki

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

More than 3 years have 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]
4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mediado
私たちメディアドゥは、電子書籍を読者に届けるために「テクノロジー」で「出版社」と「電子書店」を繋ぎ、その先にいる作家と読者を繋げる「電子書籍取次」事業を展開しております。業界最多のコンテンツラインナップとともに最新のテクノロジーを駆使した各種ソリューションを出版社や電子書店に提供し、グローバル且つマルチコンテンツ配信プラットフォームを目指しています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?