S-nailを使ってSMTPメールを送信する方法を共有。
S-nailとは?
メール処理システム。MailXの後継。
s-nail
がmailx
を置き換えs-nail
メール処理システムが、mailx
ユーティリティーに置き換わりました。s-nail
ユーティリティーはmailx
と互換性があり、新機能が数多く追加されました。mailx
パッケージはアップストリームで維持されなくなりました。
インストール
$ dnf -y install s-nail
使い方 ① 設定ファイルを読み込む
設定ファイルに各種設定項目を記載し、それを読み込む。 設定が変わらないのであれば、こちらの方が簡単だろう。
# 設定ファイルを開く emacs /etc/s-nail.conf #設定ファイルに下記を追記する #--- ここから --- #smtp config set nss-config-dir=/etc/pki/nssdb/ set smtp-use-starttls set smtp-auth=plain set smtp=<SMTPエンドポイント>:587 set from=<送信元アドレス> set smtp-auth-user=<SMTPユーザーID> set smtp-auth-password=<SMTPパスワード> #--- ここまで ---
送信コマンド
$ echo "mail_body" | s-nail -s "subject" <to_address>
オプション
- -s: subject/件名
使い方 ② CLIで設定を記述する
ユーザーIDとパスワードのエンコード
コマンドに記述する場合、下記コマンドでエンコードした結果を使う。
$ echo 'urlcodec enc <unencoded_user_id>' | s-nail -# $ echo 'urlcodec enc <unencoded_password>' | s-nail -#
送信コマンド
$ echo "mail_body" | s-nail -:/ -S smtp-use-starttls -S v15-compat -S mta=smtp://<encoded_user_id>:<encoded_password>@<smtp_endpoint>:<port> -s "subject" -r <from_address> <to_address>
オプションなど
- -S: 各種設定
- -r: 送信元アドレス
- smtp-use-starttls: 587ポートを使用する場合に記述
- v15-compat: バージョン15との互換性を有効にする
- mta: smtpは非推奨なので、mta=smtp://fooと記述
CC, BCC, 添付ファイル
- CC, BCCはそれぞれ-c , -bで指定する
- オプションはアドレス毎に指定する必要がある
- コマンドの最後の引数が通常の送信先アドレス
- 例: -c [address01] -c [address02] -b [address03] [address04]
- 01, 02 → CC, 03 → BCC, 04 → TO となる
- 添付ファイルは-aで指定する
外部リンク
man page (ubuntu)
https://manpages.ubuntu.com/manpages/xenial/man1/heirloom-mailx.1.html#examples