*/5 * * * * | /usr/bin/mail -s 'Scheduled Email' user@gmail.com
工作需要安排如下:
*/5 * * * * echo "Message body" | /usr/bin/mail -s 'Scheduled Email' user@gmail.com
我写了一个Bash脚本,允许用户安排一个cron作业来发送电子邮件。我正在使用sharutils uuencode和mailutils mail。
邮件命令在命令行中工作正常,我在我的Gmail帐户上收到电子邮件,在maillog中我可以看到正在发送的邮件。 from是user @ machineName,to是name@gmail.com。但是,当我的一个预定的cron作业尝试使用mail命令发送时,我遇到了问题。
而不是from和to两者都与我通过命令行运行时相同,maillog现在显示来自=<>和=。我的邮件和uuencode都位于/ usr / bin中,在我的脚本中,我在调用它们时给出了完整的路径。
这是我的Postfix main.cf的配置部分
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = hostname.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination =
relayhost =
myorigin = $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
在我的crontab中,我的脚本中的作业就像这样出现。
*/5 * * * * | /usr/bin/mail -s 'Scheduled Email' user@gmail.com
*/15 * * * * | /usr/bin/mail -s 'Scheduled Email' user@gmail.com
我想要做的就是从虚拟地址发出。我不需要身份验证,我也不需要通过真实的电子邮件地址发送邮件。当我从命令行独立运行它时,我只需要cronjob以与邮件相同的方式正确发送。我需要更改配置的哪一部分?
谢谢!
答案 0 :(得分:1)
试试这个:
*/5 * * * * echo "Hello, this is the body." | /usr/bin/mail -s 'Scheduled Email' name@gmail.com'.