当我使用 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 文件中,添加:
重启亲信sudo systemctl restart cronie
答案2
回答你的问题:
cron 服务将脚本的环境添加为自定义电子邮件标题。这是正常行为。
如何隐藏它?
查看你的 mutt 配置。如果没有的话忽略或者忽略您可以添加的行:
ignore *
unignore From To Cc Bcc Date Subject
忽略模式 [ 模式 ... ]
取消忽略 { * |图案 ... }
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.