Ubuntu 16.04 LTS でコマンドラインから Gmail 経由の ssmtp でメールを送る方法

コマンドラインからのメール送信

まあ普通はPostfixとかsendmailを使うかと思いますが、サクッと軽量に済ませるためにssmtpを使ってみましょう。

インストール

入れてしまいます。

$ sudo apt-get install ssmtp

設定ファイルの場所

/etc/ssmtpです。ssmtp.confだけをいじればよいだけの簡単仕様です。

設定ファイルをいじる

Gmail のサーバから送信する場合、以下の部分を末尾に付け加えれば OK です。他の場合は適宜書き換えましょう。

AuthUser=hogehoge@gmail.com
AuthPass=PASSWORD # 二段階認証の場合はアプリパスワードを取得すること
FromLineOverride=YES
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

sendmailする

sendmailしてみましょう。まずはこんなテキストファイルを作ります。

To: fuagafuga@hogehoge
From: hogehoge@gmail.com
Subject: ssmtpからメールを送るテストです

うまくいっているでしょうか?

このファイルをmail.txtなどと保存して、以下のコマンドを実行しましょう。

$ sendmail -t < mail.txt

設定に問題がなければ、これで無事にメールが送れたかと思います。

補足その1

hostnameにMXレコードが存在する適当なドメイン*1を入れないと以下のようなエラーが5分おきに届いてしまいます*2

f:id:gregminster:20190128003343p:plain

補足その2

sendmail可能になったため、cronのログなどがガンガン送られてくることになりますが、MAILTO=""などを付与して不要な送信を防ぎましょう。以下のページが参考になりました。

*1:例えばwww.sakura.ne.jp

*2:メール送信の成功失敗に関わらず

Powered by はてなブログ