使用ssmtp格式化来自crontab的电子邮件
我已经看到了许多关于如何设置ssmtp的示例,但似乎找不到关于如何配置crontab以将数据发送到电子邮件的明确答案。 我想要完成的是一个crontab配置,它将发送带有系统统计信息的电子邮件使用ssmtp格式化来自crontab的电子邮件,cron,printf,ssmtp,Cron,Printf,Ssmtp,我已经看到了许多关于如何设置ssmtp的示例,但似乎找不到关于如何配置crontab以将数据发送到电子邮件的明确答案。 我想要完成的是一个crontab配置,它将发送带有系统统计信息的电子邮件 每12小时 每次开机时。(@reboot) 我已经正确安装和配置了ssmtp,因为我可以发送电子邮件,例如 printf“主题:测试\n\r这是一个测试\n\r”| ssmtpmail@domain.com“ 但是,从cron执行完全相同的操作会导致命令被视为邮件的字符串。所有反引号都被忽略 在这里,
- 每12小时
- 每次开机时。(@reboot)
printf“主题:测试\n\r这是一个测试\n\r”| ssmtpmail@domain.com“
但是,从cron执行完全相同的操作会导致命令被视为邮件的字符串。所有反引号都被忽略
在这里,我将其设置为每分钟:
MAILTO="mail_user@domain.com"
* * * * * bash -c 'printf "Subject:Test\n\rthis is (`date`) a test\n\r" | ssmtp mail_user@domain.com'
并收到:
主题:
Cron printf“Subject:Test\n\r这是(`date`)一个测试\n\r“|/usr/bin/ssmtp邮件_user@domain.com`
内容:
bash:ssmtp:未找到命令
其中user@host是我的本地用户和pc主机以及邮件_user@domain.com是应用于发送数据的实际电子邮件。
我尝试提供完整路径/user/bin/ssmtp,而不是仅提供ssmtp,但没有效果
免责声明:
这是一个简化的示例,我想将更多数据发送到我的监控电子邮件(gmail帐户)
更新
我不得不将表单/usr/bin/ssmtp
更改为/usr/sbin/sftmp
,这表明我的问题与我最初认为的有所不同。电子邮件发送正确,但同时crontab正在发送旧的“电子邮件”“将命令作为主题中的字符串。我从crontab中删除了所有MAILTO=
部分,但尽管我仍然可以发送正确的电子邮件,但我仍然在电子邮件中写入了CRON命令(不知道如何更好地表达它)
总而言之,每个crontab任务我会收到两封电子邮件,一封是实际的电子邮件,另一封是atempt to mail的传递失败username@hostname从电子邮件_user@gmail.com
SUBJECT:
Cron <user@host> printf "Subject:Test\n\rthis is (`date`) a test\n\r" |/usr/bin/ssmtp mail_user@domain.com`
CONTENT:
bash: ssmtp: command not found