sendmail で gmail のSMTPを使う。
mac には 最初から postfix が入っているので、 postfix を使うのが手っ取り早い
postfix を使ってSMTPリレーをし、GmailのSMTPサーバーに接続する。
sasl password ファイルを用意する
takuya@mail$ sudo -e /etc/postfix/sasl_passwd
/etc/postfix/sasl_passwd
smtp.gmail.com:587 youname@gmail.com:your_password
main.cf の作成
私の環境では、なぜか、main.cf が空っぽのファイルになっていたので、デフォルトを取り出します。
sudo cp /etc/postfix/main.cf~orig /etc/postfix/main.cf
postmap の実行
postmap をつかって、パスワードをdb に登録します。
sudo postmap /etc/postfix/sasl_passwd
main.cf でリレーを設定します。
main.cf を開いて、末尾に追記します。
# Apple Defaults # message_size_limit = 10485760 mailbox_size_limit = 0 biff = no mynetworks = 127.0.0.0/8, [::1]/128 smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit recipient_delimiter = + tls_random_source = dev:/dev/urandom smtpd_tls_ciphers = medium #### ここから追記 ## gmail へのリレー設定 relayhost=smtp.gmail.com:587 smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_use_tls=yes smtp_tls_security_level=encrypt tls_random_source=dev:/dev/urandom smtp_sasl_security_options = noanonymous smtp_always_send_ehlo = yes smtp_sasl_mechanism_filter = plain
postfix の実行
設定ができたので、postfixを起動します。
sudo postfix start
起動を確認しておきます。
takuya@mail$ ps aux | grep postfix 321:_postfix 9807 0.0 0.0 4305160 4004 ?? S 4:32AM 0:00.03 tlsmgr -l -t unix -u 325:_postfix 9461 0.0 0.0 4324644 4092 ?? S 4:28AM 0:00.04 qmgr -l -t fifo -u 326:_postfix 9460 0.0 0.0 4332788 4036 ?? S 4:28AM 0:00.03 pickup -l -t fifo -u -o content_filter= 327:root 9459 0.0 0.0 4297908 560 ?? Ss 4:28AM 0:00.03 /usr/libexec/postfix/master -w
終了するときは、
sudo postfix stop
sendmail コマンドでテストメールを送信します。
サンプル用のメールを作成します。 sample-mail.txt
To:takuya@example.com Subject: HELLO , from test Hi, can you see my mail?
sendmail コマンドで送信します。
cat sample-mail.txt | sendmail -i -t
メールの受信を確認します。
無事に届けばOKです。
注意点
幾つか、気にしておく点をメモしておきます。
ポート開けっ放し?
postfix を常時動かすのはセキュリティ的に怖いのですが。使うときだけ起動できるので、それで妥協する。
sendmail コマンドとを互換性を持った別のコマンドを作ってもいいんですけど。作るのはめんどくさすぎるので
使うときのみ postfix を起動し使い終わったら終了するようにしておく。
また、smtp のリレーを localhost ( ::1 / 127.0.0.1 ) に限定するのも一つの手段です。
GmailのSMTPを使うために
Gmail でSMTPは「安全性の低いアプリ」などと呼称されている 。安全性の低いアプリ( less secure apps ) をオンにしないとSMTP経由でメールが送れないかもしれない。
最近は、SMTPだけは開放されているようです。以前はこれをONにしないとSMTPが使えなかった。
指定するGoogleのSMTP(s)のポートによっては使えない可能性が高い。