開発環境のMacからメールを送信するために必要な事。メールサーバ(Postfix)の設定と起動、OP25B対策。

開発環境のMacからメールを送信するために必要な事。メールサーバ(Postfix)の設定と起動、OP25B対策。

とりあえずwebアプリ制作において開発環境からメール送信できればいいのでそれなりの設定です。
本格的なメールサーバーとしては運用できませんのであしからず。

OP25Bとは

主要プロバイダを使っている場合はほぼ対策しなくてはメールが送れません。なぜならプロバイダが25番ポートでの接続を遮断してしまうからです。25番ポートを使った通信が出来ません。
対策としては契約しているプロバイダ経由でメールを送ります。

OP25Bの確認
OP25B(Outbound Port 25 Blocking)対策 - CentOSで自宅サーバー構築

$ telnet smtp.gmail.com 25
Trying 74.125.25.108...
telnet: connect to address 74.125.25.108: Operation timed out
Trying 74.125.25.109...

こうなったらOP25Bの影響を受けています。
⌘(command)+. あるいは control+c で止めましょう。

587番ポートなら接続可能です。

$ telnet smtp.gmail.com 587
Trying 74.125.25.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP n11sm6774215pby.67
quit

SMTP AUTHの設定

プロバイダの...と書いていますが、自サーバのメールサーバ使った設定にしてしまいます。
※プロバイダ経由の場合の設定ははココが参考になると思います。

  • 自分のための日記: Mac OS X で mail コマンドでメールを送る
  • $ sudo vi /etc/postfix/sasl_passwd
    [smtp.clicktx.jp]:587 myname@clicktx.jp:password
    
    $ sudo postmap /etc/postfix/sasl_passwd

    ※ /etc/postfix/sasl_passwd.db というファイルが出来ます。

    main.cfの設定

    postfixの設定ファイルmain.cfを編集します。

    $ sudo vi /etc/postfix/main.cf

    該当箇所に追記or修正

    relayhost = [smtp.clicktx.jp]:587

    最終行に追記

    # Enable SASL authentication in the Postfix SMTP client.
    smtp_sasl_auth_enable=yes
    smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options=
    smtp_sasl_mechanism_filter = plain

    postfixの起動またはリロード

    $ sudo postfix start
    $ sudo postfix reload

    メール送信テスト

    $ mail xxx@hoge.com(宛先)
    Subject: テストメール
    テストメール
    .

    参考

  • Postfix から Gmail 経由でメールを送る - 冒険するコンピューティング
  • Gmail Email Relay using Postfix on Mac OS X 10.5 Leopard « Riverturn Blog