首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从crond调用mailx

从crond调用mailx
EN

Unix & Linux用户
提问于 2016-06-18 11:11:57
回答 1查看 6.3K关注 0票数 7

我遇到了一个问题,gmail阻塞了使用mailx发送的邮件。我通过设置一个适当的~/..mailrc来解决这个问题,它如下所示:

代码语言:javascript
复制
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)"

所以当我跑的时候:

代码语言:javascript
复制
echo "hi" | mailx xxx@gmail.com

我的电子邮件以用户和根用户的身份成功发送。

现在我也想让克伦工作。我更改了"/etc/sysconfig/crond“以强制它使用mailx,并使用:

代码语言:javascript
复制
CRONDARGS="-m /usr/bin/mailx"

我在以下位置安装了~/..mailrc:

  • /root/..mailrc
  • /home/theuser/..mailrc
  • /etc/..mailrc

但是,无论我做什么,回显输出都不能成功地通过电子邮件发送。

crontab看起来像(我已经检查过了,脚本正在运行并执行他们的任务,并且回音,只是cron没有发送电子邮件):

代码语言:javascript
复制
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是设置在另一个主机和发送电子邮件很好。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2016-06-19 00:08:34

只有当您将目标地址传递给命令行时,mailx才会发送邮件。当您在没有参数的情况下运行它时,它会从其标准输入中读取交互式命令。请注意,您的测试给它提供了垃圾,这些垃圾已被解释为命令;其中一些命令可能已损坏您的邮箱,发送电子邮件等。

告诉mailx运行mailx -t,这需要一个完整的电子邮件与标头在标准输入。

粗略地看,您似乎无法通过crond启动脚本传递带有参数的命令。所以编写一个shell包装器/usr/local/sbin/mailx-t

代码语言:javascript
复制
#!/bin/sh
exec mailx -t

并将CRONDARGS="-m /usr/local/sbin/mailx-t"放在/etc/sysconfig/crond中。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/290573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档