メールを送信するようにDebianサーバーを設定しましたmsmtp
。たとえば、現在のユースケースは、logwatch
ISP Eメールで毎日のレポートを送信することです。
echo "$body" | mutt -s "$topic" -- "[email protected]"
msmtp
にあるグローバルファイルを介してmsmtprc
設定しました/etc/msmtprc
。内容は以下の通りです。
次に設定したいのは、私のrootアカウントの電子メール(crontabの出力など)も私の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, [email protected]
/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 [email protected]
auth login
user [email protected]
password foobar
syslog LOG_MAIL
logfile /var/log/msmtp.log
# ------------------------------------------------------------------------------
# Configurations
# ------------------------------------------------------------------------------
# Construct envelope-from addresses of the form "[email protected]".
#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
# ------------------------------------------------------------------------------#
答え1
アップロード日: 2019-10-17
msmtpバージョン1.8.6(2019-09-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@, [email protected]
msmtpにバグ/問題を記録して、この動作を変更して正しく動作させるようにしてから、この回答を更新する予定です。
答え2
今日初めて試したときにmsmtp
2つの事実を見つけました。
/etc/aliases
デフォルトはpostmaster: root
状況を胸の痛みにします。によってのみ公開されたmsmtp -v
- 行を次に変更することで解決しました。
postmaster: [email protected]
- 行を次に変更することで解決しました。
置く
aliases /etc/aliases
/etc/msmtprc
または~/.msmtprc
答え3
次に設定したいのは、私のrootアカウントの電子メール(crontabの出力など)も私のisp電子メールに送信されることです。
- 上記と同じ行を追加します
/etc/msmtprc
。
aliases /etc/aliases.msmtp
/etc/aliases.msmtp
次の行を含むファイルを作成します。
default: [email protected]
答え4
msmtpとAppArmorは一緒にうまく動作しません。 AppArmorはmsmtpdで読み取りを許可できますが、/etc/aliases
読み取りを躊躇します/etc/aliases.msmtp
。
-v
msmtpオプションを使用してテストメールを送信して問題を発見しました。
持続することをお勧めします/etc/aliases
。