#008
posted on 2020.12.29 (Tue) 2023.03.28 (Tue)

MAMPのメール送信を有効化してローカル環境でフォームから送信。

Macに元々インストールされているメール転送エージェント(MTA : Mail Transfer Agent)のPostfixでSMTP(Simple Mail Transfer Protocol)にGmailを使用して、MAMPのlocalhostでWebサイトのフォームからメール送信をできるようにする方法のメモ。

 

  1. 事前にGoogleアカウントの2段階認証を設定。(必須)
  2. Gmailのアプリパスワードを発行。
  3. Postfixのファイル (/private/etc/postfix/main.cf) に記述追加。
  4. 記述追加したPostfixが読み込むGmailアドレスとアプリパスワードの設定ファイル作成。
  5. Postfixのデータベースを更新。

 

Gmailのアプリパスワードの発行

Gmailのアプリパスワードを発行するには、事前にGoogleアカウントの2段階認証の設定が必須。

※ アプリパスワードに関するの公式ドキュメント

  1. 「Googleアカウント管理ページ」 > 左メニュー「Security」 > 右カラム「Signing in to Google」 > 「2-Step Varification」をオンに設定する。
  2. 「Googleアカウント管理ページ」 > 左メニュー「Security」 > 右カラム「Signing in to Google」 > 「2-Step Varification」 > 「App passwords」にアクセスする。
  3. 下方にある「Select app」は「Mail」、「Select device」は「Mac」を選択して「GENERATE」でアプリパスワード発行。
  4. 表示されたアプリパスワードをメモ。(再表示できないので、メモし忘れた場合は新しく発行する必要がある。)

 

 

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」、本文に「現在時刻」でメール送信。)

 

 

この記事のURL

https://memo.ag2works.tokyo/post-201/

Copyコピー
この記事のタイトル

MAMPのメール送信を有効化してローカル環境でフォームから送信。 | memo メモ [AG2WORKS]

Copyコピー
この記事のリンクタグ

<a href="https://memo.ag2works.tokyo/post-201/" target="_blank" rel="noopener">MAMPのメール送信を有効化してローカル環境でフォームから送信。 | memo メモ [AG2WORKS]</a>

Copyコピー
※ フィールドをクリックでコピーするテキストの編集ができます。

この記事へのコメント

コメントの書き込みはまだありません。

  • コメント内のタグはエスケープ処理され、文字列として出力されます。
  • セキュリティーのため、投稿者のIPアドレスは取得されます。
  • 管理者が内容を不適切と判断したコメントは削除されます。
  • このフォームにはスパム対策として、Googleの提供するreCAPTCHAシステムが導入されています。
    (Google Privacy Policy and Terms of Service.)