開発環境

PostfixからGmail経由でメールを送信する方法

Sara

2023年10月時点での動作確認を完了しました。

この記事では「Postfix から Gmail 経由でメール送信する方法」を紹介しています。

macOS には Postfix がインストールされているので、Gmail の情報を登録すれば簡単にメール送信を行うことができます。

XAMPP や MAMP などのローカル環境でもメール送信できるようになるので、設定しておくと便利です。

Gmailのアプリパスワードを取得

Gmail 経由でメール送信するために「メールアドレスとアプリパスワード」を用意する必要があります。

アプリパスワードは2段階認証を有効にすると取得できるもので、ログインパスワードとは異なるので注意しましょう。

Gmail 画面右上のアイコンをクリックして「Googleアカウントを管理」をクリックします。

左側メニューの「セキュリティ」をクリックして、2段階認証プロセスが有効になっているか確認します。有効になっていない場合はクリックして指示に従って有効化してください。

有効になっている場合は「2段階認証プロセス」をクリックします。

画面下部にある「アプリ パスワード」をクリックします。

分かりやすいアプリ名を入力して「作成」をクリックします。

ここに表示されたアプリパスワードをあとで使うので、この画面を開いておくかメモしておいてください。

Postfix の設定

次に Postfix の設定を進めていきます。

ここからは /etc/postfix/ に新しいファイルを作成・編集していきます。

テキストエディタなどで作業することもできますが、今回はターミナルを使います。

main.cf ファイルの編集

sudo vi /etc/postfix/main.cf と入力して Enter を押します。sudo は「管理者権限で実行」という意味です。

管理者のパスワードを入力して Enter を押すと、main.cf ファイルが開きます。

一番下までスクロールしたらキーボードの i を押して、入力できる状態にします。
i は insert(テキスト挿入)という意味です。

以下のテキストを追加します。

#Gmail Settings
relayhost = smtp.gmail.com:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes

追加したらキーボードの esc を押して編集を終了し、:wq と入力して Enter を押します。

esc は escape(エスケープ)、wq は write & quit(書き込んで終了)という意味です。

パスワードファイル作成

次に Gmail ログイン情報のファイルを作成します。

先ほど main.cf に追加したテキストの4行目「gmail_passwd」というファイルを作成します。ファイル名は変更しても問題ありませんが、main.cf と一致させてください。

sudo vi /etc/postfix/gmail_passwd と入力して Enter を押します。

キーボードの i を押して編集モードにして

smtp.gmail.com:587 メールアドレス:アプリパスワード

を入力します。* Gmail ログイン時のパスワードではなく、最初に取得したアプリパスワードを使用します。

入力したら esc を押して編集を終了し、:wq と入力して Enter を押します。

Finder で /etc/postfix フォルダを開いてみると、gmail_passwd というファイルが作成されていることを確認できます。

パスワードファイル登録

先ほど作成した gmail_passwd からデータベースを作成します。

sudo postmap /etc/postfix/gmail_passwd と入力して Enter を押します。

Finder で /etc/postfix フォルダを開いてみると、gmail_passwd.db というファイルが作成されていることを確認できます。

パスワードファイル削除

gmail_passwd ファイルは必要ないので削除しておきます。

sudo rm /etc/postfix/gmail_passwd と入力して Enter を押します。

rm は remove(削除)という意味です。

Postfix の再起動

ここまでの変更が反映されるように Postfix を再起動しておきます。

sudo postfix reload と入力して Enter を押します。

postfix/postfix-script: refreshing the Postfix mail system と表示されたら完了です。

postfix/postfix-script: fatal: the Postfix mail system is not running と表示された場合は、sudo postfix start と入力して Enter を押します。

メール送信テスト

これで Postfix の設定は完了です。

最後にターミナルからメールを送信してみましょう。

mail -s 件名 送信先メールアドレス [ENTERを押す]
本文を入力する
. [ENTERを押す]

メールが届いていれば完了です!

メールが届いていない場合は「迷惑メール」フォルダを確認してみてください。

「迷惑メール」フォルダにも届いていない場合は、メールアドレスかアプリパスワードが間違っている可能性があるので、もう一度 gmail_passwd の作成からお試しください。

まとめ

以上で設定は完了です。

実際にメール送信のコードを書いてみたいという方は、ぜひ「コンタクトフォームの作り方」もお読みください。

あわせて読みたい
【PHP】コンタクトフォームの作り方
【PHP】コンタクトフォームの作り方
Subscribe
Notify of
10 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
のっち
5 years ago

パスワード作成のところで、「sudo vi /etc/postfix/gmail_passwd と入力して Enter を押します。」が入力してもcommand not foundになってしまいます。main.cfのファイル名は一致しています。

tanny
4 years ago

初めまして。手順通り進めまして、sudo postfix startを押してらfatal: mail system startup failed、訳したら起動失敗と出たのですが原因がわかりません。色々調べたのですが、解決策がわからず困ってます。回答お待ちしております。

yakshaver
3 years ago

postfix から gmail の smtpサーバーへの送信ができなくて、たどり着きました。
おかげさまで送信できるようになりました。

手順が簡潔に書かれていて、とてもわかりやすかったです。
ありがとうございました!

あやこ
2 years ago

他のサイトの通りにしてうまくいかなくて、数日悩んでここにたどり着いたら、一発で動かせました!説明がとても分かりやすかったし、解決できてとっても嬉しいです!
ありがとうございます!

takahiro tsuji
1 year ago

Ubuntu20.04LTS+NetBeans+Gmailで送信成功しました。助かりました。

ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

POINT 01

動くコード

プログラミングの文法を学んでも、そこからどのようにアプリ開発ができるのかイメージが湧きにくいものです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなどアプリとして機能するものを作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

受講期限もないので、いつでも前のレッスンに戻ることができるので安心です。

お申し込みしたその日からすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

10
0
この記事にコメントするx
記事URLをコピーしました