Mac

Mac OS X の postfix で gmail にメールを送れるように設定した

久々に Mac に向かってキーボードを叩いていた azur256 です。

最近、家庭内で使っている NAS だの増設 HDD だのが不安な兆候を見せはじめたので、たまたま別件であまった 3TB の外付けHDDがあったので、rync でバックアップを取ることにしました。で、この rsync の実行結果をメールで送ろうと思ったのですが、MacBook Pro にメールの設定をし忘れていたので、軽い気持ちで始めたところ、ちょっと引っ掛かったので備忘録を兼ねてエントリしておきます。

Macからメールを送れるようにする


Mac でも Mail アプリなどを使えば簡単にメールを送れるわけですが、シェルスクリプトの結果などをメールで通知しようした場合、 Mac OS X の OS でメールを送信できるようにする必要があります。
幸いにも、OS 標準で postfix というメール機能が使えるようになっていますので、これを設定しさえすれば、簡単にメールが送れるようになるわけです。(そのはずでした…)。

「postfix とは何か」、「どうやったら使えるようになるのか」、については色々なところに情報があるので、詳しく知りたい方は、そちらを見ていただくとして、今回は、ざっくり設定方法を書いておきます。
ちなみに、以下は MacOS High Sierra の内容なので、OS のバージョンによっては若干違いがあるかもしれません。

まずは postfix に Gmail の smtp サーバにリレーするための情報を /etc/postfix/main.cf に設定します。



main.cf の末尾に以下の内容を追加しました。



次に Gmail の SMTP 認証用に SASLのパスワードDBを作成します。

まず、DB の元になるパスワードファイルを作ります。


パスワードファイルのファイル名は、先ほど main.cf で smtp_sasl_password_maps という項目に設定した値と同じにしてください。では、このファイルに以下の内容を記載します。



Gmailのメールアドレス:Gmailのパスワード を記載します。(二段階認証を設定している場合、このパスワードに一工夫が必要です。後述しますので、今はそんなもんか、と思っておいてください)。
このファイルを保存したら、以下のコマンドでパスワードDBを作成します。



このコマンドを実行すると /etc/postfix/gmail_authinfo.db というファイルができているはずです。このファイルができていたら、先ほどパスワード文字列を記載した gmail_authinfo ファイルは不要ですので、しっかり削除しておきましょう。ゴミ箱に入れただけ、だと復元できてしまうので注意してください。

ここまで gmail に向けてメールを飛ばす設定は完了です。この設定を postfix がちゃんと読んでくれるかを試すために、以下のコマンドを打ってみます。



これでエラーが出なければ stop で postfix のプロセスを止めておきましょう。(最近の Mac OS では launchd がメールスプールを確認して勝手に postfix を起動してくれるので postfix 自体を起動しておく必要はありません。)

場合によっては、以下のエラーが出ることがあります。



このエラーが出たら、ここに書かれている通りに postconf コマンドを打ってから、reload してみましょう。postfix プロセスが起動していない場合は、 postfix start をしてください。

あとは、ターミナルからメールが送れるか、mail コマンドを使って試してみましょう。この時に、もう一枚ターミナルを立ち上げておいて、以下のコマンドを入力して sendmail の挙動を見れるようにしておきます。



二段階認証でのエラーを回避する


上手くメールが送れればこれで設定は終わりです。が、最近は多くの人が二段階認証を設定していると思うので、大抵失敗すると思います。私も失敗しました。
失敗すると、先ほどの log を出力しているターミナルに以下のようなエラーが出ていると思います。



このエラーメッセージに書かれているように https://support.google.com/mail/?p=InvalidSecondFactor にアクセスしてアプリ パスワードを入手しましょう。

このページの「アプリ パスワードの生成方法」に書かれている通りの手順で、二段階認証を回避するアプリ用のパスワードを生成します。手順通りに作成すると「お使いのデバイスのアプリ パスワード」に16文字の文字列が出力されますので、これを使って、改めて SASL のパスワードDBを作成します。

GoogleApplcationPassword

先ほどの gmail_authinfo を改めて以下の内容で作成します。



ファイルができたら postmap でパスワードDBを再作成すれば OK です。これで無事にメールが送れるようになるはずです。アプリパスワードは Google アカウントの管理から削除できますので、不要になったり不安を感じたら削除するなり、新たなものに変えるなり自分できちんと管理する必要がある点は注意してください。



最後まで読んでいただきありがとうございます。

follow us in feedly 左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです


Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします

RSSリーダへの登録は こちら からどうぞ。

URL
TBURL

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

フェイスブックでのコメント

Return Top