我遇到了一个问题,gmail阻塞了使用mailx发送的邮件。我通过设置一个适当的~/..mailrc来解决这个问题,它如下所示:
set smtp-use-starttls
set nss-config-dir=/home/theuser/.certs
set ssl-verify=ignore
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=xxx
set smtp-auth-password=yyy
set from="rabbitovh@thehologram.com(Rabbit Server)"所以当我跑的时候:
echo "hi" | mailx xxx@gmail.com我的电子邮件以用户和根用户的身份成功发送。
现在我也想让克伦工作。我更改了"/etc/sysconfig/crond“以强制它使用mailx,并使用:
CRONDARGS="-m /usr/bin/mailx"我在以下位置安装了~/..mailrc:
但是,无论我做什么,回显输出都不能成功地通过电子邮件发送。
crontab看起来像(我已经检查过了,脚本正在运行并执行他们的任务,并且回音,只是cron没有发送电子邮件):
MAILTO="xxx@gmail.com"
# Every minute check processes are running, restart if necessary and send an email.
* * * * * source /home/theuser/.bashrc; global audit_regular
# Every day, send an email describing the state of the host and its jobs.
0 5 * * * source /home/theuser/.bashrc; global audit_daily
# Every Monday at 7am, archive the logs.
0 7 * * 1 source /home/theuser/.bashrc; global archive_logs此外,这个crontab是设置在另一个主机和发送电子邮件很好。
发布于 2016-06-19 00:08:34
只有当您将目标地址传递给命令行时,mailx才会发送邮件。当您在没有参数的情况下运行它时,它会从其标准输入中读取交互式命令。请注意,您的测试给它提供了垃圾,这些垃圾已被解释为命令;其中一些命令可能已损坏您的邮箱,发送电子邮件等。
告诉mailx运行mailx -t,这需要一个完整的电子邮件与标头在标准输入。
粗略地看,您似乎无法通过crond启动脚本传递带有参数的命令。所以编写一个shell包装器/usr/local/sbin/mailx-t
#!/bin/sh
exec mailx -t并将CRONDARGS="-m /usr/local/sbin/mailx-t"放在/etc/sysconfig/crond中。
https://unix.stackexchange.com/questions/290573
复制相似问题