MAMPのメール送信を有効化してローカル環境でフォームから送信。
Macに元々インストールされているメール転送エージェント(MTA : Mail Transfer Agent)のPostfixでSMTP(Simple Mail Transfer Protocol)にGmailを使用して、MAMPのlocalhostでWebサイトのフォームからメール送信をできるようにする方法のメモ。
- 事前にGoogleアカウントの2段階認証を設定。(必須)
- Gmailのアプリパスワードを発行。
- Postfixのファイル (/private/etc/postfix/main.cf) に記述追加。
- 記述追加したPostfixが読み込むGmailアドレスとアプリパスワードの設定ファイル作成。
- Postfixのデータベースを更新。
Gmailのアプリパスワードの発行
Gmailのアプリパスワードを発行するには、事前にGoogleアカウントの2段階認証の設定が必須。
※ アプリパスワードに関するの公式ドキュメント。
- 「Googleアカウント管理ページ」 > 左メニュー「Security」 > 右カラム「Signing in to Google」 > 「2-Step Varification」をオンに設定する。
- 「Googleアカウント管理ページ」 > 左メニュー「Security」 > 右カラム「Signing in to Google」 > 「2-Step Varification」 > 「App passwords」にアクセスする。
- 下方にある「Select app」は「Mail」、「Select device」は「Mac」を選択して「GENERATE」でアプリパスワード発行。
- 表示されたアプリパスワードをメモ。(再表示できないので、メモし忘れた場合は新しく発行する必要がある。)
Postfixの設定
1. main.cfファイルを編集
macOSの「起動ディスク」>「private」>「etc」>「postfix」>「main.cf」を編集する。
※ GUIエディターを使うかターミナルからCUIエディターで開き、一番下に下記を追記。
#ローカルでgmailを使用できるようにする
myorigin = gmail.com
myhostname = smtp.gmail.com
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/private/etc/postfix/任意のファイル名
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
inet_protocols = all
smtp_use_tls = yes
smtp_tls_security_level = encrypt
tls_random_source = dev:/dev/urandom
2. 指定したファイルの新規作成
上記の「smtp_sasl_password_maps」の行で指定したディレクトリに、指定した名前のファイルを新規作成して、「Gmailのアドレス」と「取得したアプリパスワード」を記述する。
(Finderで直接ファイルを新規作成するか、ターミナル上でCUIエディターを起動して作成・編集。)
[ ターミナルでファイル作成する場合 ]
ターミナル上でCUIエディターのVimでファイル作成・編集する場合は、下記コマンドで指定したファイルをVimで開く。(指定したファイルが存在しない場合は新規作成される。)
sudo vim /private/etc/postfix/任意のファイル名
Vim起動時は「ノーマルモード」(カーソル移動などをするモード)で立ち上がるので、「i」キーでインサートモード(テキスト入力ができるモード)にしてから下記の1行を記述。
記述が完了したら「esc」キーを押して「インサートモード」から「ノーマルモード」に戻り、「:wq」(「編集を保存して終了」のVimの終了コマンド)を入力して「enter」キーで実行してVimを終了する。
※ アプリパスワードの空白は要らないので削除。
[smtp.gmail.com]:587 アカウント名@gmail.com:取得したアプリパスワード
3. データベースの更新
上記のファイル設定が完了したらmapデータベースを更新するために下記を実行。
sudo postmap /private/etc/postfix/作成したファイル名
指定しているディレクトリに「作成したファイル名.db」のファイルが作成されていれば、下記でPostfixを再起動して作業完了。
sudo postfix reload
Postfixが走っていなければ下記を実行。
sudo postfix start
#停止はpostfix stop
テスト送信で動作確認
ターミナルで下記を実行してメール送信の動作確認をする。
dateコマンドで現在時刻を取得してmailコマンドに渡し、件名を「test」、送信先を「受信したいメールアドレス」にしてmailコマンドで送信する。
date | mail -s "test" 受信したいメールアドレス
date : 現在時刻を表示するコマンド。
| : パイプ。コマンドの標準出力を別のコマンドの標準入力として繋げる。
mail : 指定したメールアドレスにメールを送信するコマンド。オプション「-s」はタイトルを指定。(件名に「test」、本文に「現在時刻」でメール送信。)
- メール転送エージェント (MTA)
- mac MAMP から メール送信
- MAMPのローカル環境からメールを送信する方法を丁寧に解説
- macのMAMPで設定したlocalhostにてメール送信テストをする方法(gmail利用)
- Mac OS X で mail コマンドでメールを送る
- Macでコマンドからメールを送る Gmail
- Mac の Terminal でメール送信
https://memo.ag2works.tokyo/post-201/
MAMPのメール送信を有効化してローカル環境でフォームから送信。 | memo メモ [AG2WORKS]
<a href="https://memo.ag2works.tokyo/post-201/" target="_blank" rel="noopener">MAMPのメール送信を有効化してローカル環境でフォームから送信。 | memo メモ [AG2WORKS]</a>
この記事へのコメント
コメントの書き込みはまだありません。