我的 root 用户使用 ssmtp 发送电子邮件。但是我无法更改“来自:root ...”根名称。有没有办法在不使用其他用户的情况下使用其他名称发送电子邮件?
尝试:
echo '来自:“新名称”' | ssmtp to@gmail.com -v
我已经为 root 用户设置了 cronjob。但是,当 cron 失败时,我应该会收到一封来自 cronjob 的电子邮件,因为我在 /etc/crontab 中设置了 MAILTO:
MAILTO=my@email.com
Run Code Online (Sandbox Code Playgroud)
我已经使用安装了 mailx
yum install mailx
Run Code Online (Sandbox Code Playgroud)
但是当我查看 cron 日志时,我得到以下几行:
Feb 23 14:13:01 internal crond[6858]: (root) CMD (/var/www/vded/build/bin/sync.sh)
Feb 23 14:13:01 internal crond[6857]: (root) MAIL (mailed 79 bytes of output but got status 0x0001 )
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
更新 :
我在邮件日志中收到此错误:
Feb 23 16:06:01 internal sendmail[7210]: o1NG61cd007210: from=root, size=425, class=0, nrcpts=1, msgid=<201002231606.o1NG61cd007210@internal.fff.com>, relay=root@localhost
Feb 23 16:06:01 internal sendmail[7211]: o1NG61hT007211: from=<root@internal.fff.com>, size=732, class=0, nrcpts=1, msgid=<201002231606.o1NG61cd007210@internal.fff.com>, …
Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 10.10 上设置了 msmtp,以便 cron 可以向我发送电子邮件。在大多数情况下,这就像冠军一样。
但是,进入我的 gmail 帐户的电子邮件显示为来自(unknown sender),并且标题显示:
From: root (Cron Daemon)
Run Code Online (Sandbox Code Playgroud)
如何将 From 标头设置为有效的电子邮件地址?
我刚刚将msmtp 符号链接为/usr/sbin/sendmail
我找到的一种可能的解决方案是:http : //tech.bluesmoon.info/2010/01/pretty-print-cron-emails.html
但是,我很好奇是否有更简单的方法。
我在使用 cron 发送电子邮件时遇到了一些麻烦。我的 ISP 要求“发件人:”字段与发送电子邮件的电子邮件地址相匹配,否则电子邮件将被拒绝。由于 cron 将“发件人:”字段硬编码为“root(Cron Daemon)”,因此不会发送这些电子邮件。
我已经设置了 msmtp 并且可以从命令行毫无问题地发送电子邮件。事实上,我已经将我的一些 cron 作业包装在一个发送电子邮件本身的脚本中。这工作正常,但我想要一个更优雅的解决方案。
我最初使用的是包msmtp-mta
,它只是符号链接/usr/lib/sendmail
,/usr/bin/msmtp
以便 cron 使用 msmtp 发送电子邮件。由于这不起作用,我删除了该包并放入了一个 bash 脚本,/usr/lib/sendmail
该脚本应该只从标准输入中读取并发送带有正确标题的电子邮件:
#!/bin/bash
HEADERS="To: <myemail>
From: Cron <myotheremail>
Subject: Vixie-cron snooper ($@)
"
INPUT=$( cat /dev/stdin )
echo -e "$HEADERS""Stdin:\n$INPUT\n" | msmtp <myemail>
echo "$HEADERS""Stdin:\n$INPUT\n" > /tmp/vixielog
Run Code Online (Sandbox Code Playgroud)
然而,这并没有达到预期的效果。我刚刚收到一封几乎是空的电子邮件,/tmp/vixielog
内容相同:
To: <myemail>
From: Cron <myotheremail>
Subject: Vixie-cron snooper (-i -FCronDaemon -oem <myemail>)
Stdin:
Run Code Online (Sandbox Code Playgroud)
电子邮件来得正是时候,所以我知道 cron 作业正在正常运行,但我没有得到输出。我如何调整这种方法以在电子邮件中获取命令的输出?