#008
posted on 2020.12.29

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」 > 「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行を記述。

※ アプリパスワードの空白は要らないので削除。

[smtp.gmail.com]:587 アカウント名@gmail.com:取得したアプリパスワード

記述が完了したら「esc」キーを押してインサートモードからノーマルモードに戻り、「:wq」(「編集を保存して終了」のコマンド)を実行してVimを終了する。

 

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/

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

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

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

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

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

この記事へのコメント

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

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