SendmailMsmtp 不理解
Msmtp 不理解/etc/aliases
我已將 Debian 伺服器配置
msmtp
為用於發送郵件。目前的案例是例如從logwatch
我的 isp 電子郵件發送每日報告。
echo "$body" | mutt -s "$topic" -- "myisp@email.com"
我已經
msmtp
通過msmtprc
位於的全域文件進行了配置/etc/msmtprc
。內容如下圖。我要配置的下一件事是我的根帳戶的電子郵件(例如,來自 crontabs 的輸出)也發送到我的 isp 電子郵件。
我四處搜尋並發現,例如在 Arch wiki 上,我應該只配置我的別名。我在 msmtp 配置文件的底部這樣做了。
但是,在執行後
newaliases
,並嘗試執行echo test | mail -s "test message" root
我得到錯誤
send-mail: /etc/aliases: line 2: invalid address 'postmaster' Can't send mail: sendmail process failed with error code 78
我不確定如何解決這個問題。下面顯示的別名是已經存在的。我只添加了gmail地址。
我想我可以只放一個新的別名文件,但這可能會破壞依賴於此的其他服務。即,我不知道解決此問題的正確方法是什麼。
/etc/aliases
# /etc/aliases mailer-daemon: postmaster postmaster: root nobody: root hostmaster: root usenet: root news: root webmaster: root www: root ftp: root abuse: root noc: root security: root root: christphe, christophe.detroyer@gmail.com
/etc/msmtprc
# ------------------------------------------------------------------------------ # msmtp System Wide Configuration file # ------------------------------------------------------------------------------ # A system wide configuration is optional. # If it exists, it usually defines a default account. # This allows msmtp to be used like /usr/sbin/sendmail. # ------------------------------------------------------------------------------ # Accounts # ------------------------------------------------------------------------------ account isp host mail.isp.net port 587 from admin@isp.com auth login user admin@isp.com password foobar syslog LOG_MAIL logfile /var/log/msmtp.log # ------------------------------------------------------------------------------ # Configurations # ------------------------------------------------------------------------------ # Construct envelope-from addresses of the form "user@oursite.example". #auto_from on #maildomain fermmy.server # Use TLS. tls on tls_starttls on tls_trust_file /etc/ssl/certs/ca-certificates.crt # Syslog logging with facility LOG_MAIL instead of the default LOG_USER. # Must be done within "account" sub-section above #syslog LOG_MAIL # Set a default account account default : isp aliases /etc/aliases # ------------------------------------------------------------------------------#
2019-10-17 更新
msmtp 版本 1.8.6(2019 年 9 月 27 日發布)現在在
/etc/aliases
. 請參閱https://marlam.de/msmtp/news/msmtp-1-8-6/。原始答案
所以,當我從 ssmtp 遷移到 msmtp 時,我遇到了完全相同的問題。該問題是由
is_address()
aliases.c 中的函式引起的。基本上,如果別名的目標不包含'@'
,則 msmtp 認為它無效並死亡。您可以通過將 @ 附加到重定向到根目錄的所有別名來解決此問題。在您的範例中,您將修改
/etc/aliases
如下:# /etc/aliases mailer-daemon: postmaster@ postmaster: root@ nobody: root@ hostmaster: root@ usenet: root@ news: root@ webmaster: root@ www: root@ ftp: root@ abuse: root@ noc: root@ security: root@ root: christphe@, christophe.detroyer@gmail.com
我計劃針對 msmtp 記錄錯誤/問題以更改此行為,以便它正常工作並隨後更新此答案。