从 crontab 输出发送电子邮件时,mutt 在电子邮件内容中显示标题

从 crontab 输出发送电子邮件时,mutt 在电子邮件内容中显示标题

当我使用 mutt (来自 cron/cronie 的脚本的输出)发送电子邮件时,我在电子邮件的开头收到以下几行:

To: [email protected]
Subject: Cron <root@alarm> /home/alarm/bin/script-name.sh
MIME-Version: 1.0
Content-Type: text/plain; charset=ANSI_X3.4-1968
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <LANG=C>
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <[email protected]>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

remainder of email from output of script..

编辑cronie.service: 从该行的文件中调用 mutt :

ExecStart=/usr/bin/crond -n -m mutt

$ cat ~/.muttrc 
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Ikwyl6"
set [email protected]
set envelope_from=yes

有谁知道为什么我在电子邮件内容中收到这些标题?

答案1

在你的cronie.service文件中放入:

Environment="[email protected]"

EMAIL您希望通过电子邮件发送 cron 作业(仅从 cron 脚本输出)的电子邮件在哪里。

cronie.service将 has: 中的行更改ExecStart=/usr/bin/crond -n -m 'msmtp -t'为:

ExecStart=/usr/bin/crond -n -m 'mutt -H - ${EMAIL}'

其中-H -将 mutt 的管道输入的开头作为文件的标头和消息的正文。

在 /etc/cron.d/ 文件或 crontab 文件中,添加:

[email protected]

重启亲信sudo systemctl restart cronie

答案2

回答你的问题:

cron 服务将脚本的环境添加为自定义电子邮件标题。这是正常行为。

如何隐藏它?

查看你的 mutt 配置。如果没有的话忽略或者忽略您可以添加的行:

ignore          *
unignore        From To Cc Bcc Date Subject

在 neomuttrc(5) 中选择标头

忽略模式 [ 模式 ... ]

取消忽略 { * |图案 ... }

   The ignore command allows you to specify header fields which you don't normally
   want to see in the pager. You do not need to specify the full header field name.
   For  example,  "ignore  content-"  will
   ignore all header fields that begin with the pattern "content-", "ignore *" will
   ignore all headers.

   To remove a previously added token from the list, use the unignore command. For
   example, "unignore *" will remove all tokens from the ignore list.

相关内容