msmtp

自前でメールサーバーを持たない小規模なホスト向けのMTA(Mail Transfer Agent). daemonにならないので安全。

送信はsendmailコマンド互換で使える。外部からの受信はできない。

lrwxrwxrwx 1 root root 12 Oct 11  2019 /usr/sbin/sendmail -> ../bin/msmtp

/etc/msmtprc

gmail経由で送信する例。

defaults
auth    on
tls     on
tls_trust_file  /etc/ssl/certs/ca-certificates.crt
# tls_trust_file  /etc/pki/tls/certs/ca-bundle.crt # CentOS
#logfile /var/log/mail.log
syslog  LOG_MAIL
aliases /etc/aliases

account gmail
host    smtp.gmail.com
port    587
from   ********@gmail.com
user    ********@gmail.com
password        ********
account default : gmail

GmailのXOAUTH2認証を使う場合

root宛のメールがGoogle側でエラーになる

/etc/aliasで別アカウントに渡すように。

Apr 15 23:15:04 r6c msmtp: host=smtp.gmail.com tls=on auth=on user=********@gmail.com from=********@gmail.com recipients=root smtpstatus=553 smtpmsg='553-5.1.3 The recipient address <root> is not a valid RFC-5321 address. Learn\n553-5.1.3 more at\n553 5.1.3  https://support.google.com/mail/answer/6596 cx17-20020a17090afd9100b00246f76e8c04sm4485536pjb.40 - gsmtp' errormsg='recipient address root not accepted by the server' exitcode=EX_DATAERR

logfileを指定した場合、 /var/log/mail.log に書けなくてエラーになることがある。

どう修正するのがいいんでしょうね。syslog LOG_MAIL にして、 logfileをコメントアウトして逃げたけど。

-rw-r----- 1 syslog adm 282 Nov 28 23:00 /var/log/mail.log
-rwxr-sr-x 1 root msmtp 122544 Oct 11  2019 /usr/bin/msmtp

apparmor の設定と競合しているらしい