tapitapi’s blog

1日1杯タピオカ!エンジニア

【MAMP】macのlocalhostでgmail送信

MAMPでlocal環境作成して開発した時に、

PHPプログラム内にメール送信の機能がある場合、実際にメール送信ができない、、、」

 

そこで、gmailsmtpを使用して localでもメール送信できるように設定する方法を紹介します。

 

MAMPでlocal環境構築は下記が参考になると思います。

https://nelog.jp/mamp

 

1. /private/etc/postfix/main.cf の最終行に下記を記載

 

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/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
inet_protocols = all
smtp_use_tls = yes
smtp_tls_security_level = encrypt

 

2. gmail でアプリパスワードを作成

参考:

www.howtonote.jp

 

*まず、smtpとして使いたいgmailアドレスの設定画面で「セキュリティ」を選択

f:id:kayo445:20200424175806p:plain

 

*2段階認証プロセスをオンに変更

f:id:kayo445:20200424175812p:plain


 *「メール」「Mac」を選択して「生成」をクリック

f:id:kayo445:20200424175942p:plain

*赤い部分に表示されたパスワードを記録する!(あとで使用します)

f:id:kayo445:20200424180015p:plain

 

3. 下記のように、作成したアプリパスワードを/private/etc/postfix/sasl_passwd に記載

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

 

4. postmapコマンド実行し、/private/etc/postfix/sasl_passwd.db を生成

sudo postmap /private/etc/postfix/sasl_passwd

 上記コマンド実行で、sasl_passwd.dbが生成されます。念のためlsコマンドなどで、

/private/etc/postfix/直下にsasl_passwd.dbが存在していることを確認してください

 

 5. postfix を開始

sudo postfix start

 

ちゃんとスタートしたかな?って時は、もう一度sudo postfix startを実行して

the Postfix mail system is already running

というメッセージが出ればOK

 

postfix とは?

https://wa3.i-3-i.info/word11136.html

 

postfixmac にデフォルトで入っているので、他のMTA使うより手っ取り早いです

 

6. bash でメールコマンド実行し、メールが送信できるかテスト

date | mail -s test 任意のメール@gmail.com

 

任意のメール@gmail.com宛に

From:メールアドレス@gmail.comsmtpとして使用するように2.で設定したもの)

からメールが来ていることを確認

 

 

これで終わりですーーーー!!

あとはプログラムに、送信元としてsmtpとして使用するように2.で設定したメールアドレスを記載すれば、送信できるようになります。

 

Windowsだと、どうするんだろう??

バーチャルボックス内のLinux環境内にpostfixをインストールするところからやらないとダメかもですね

 

おやすみなさいいいいい