2014-10-13 62 views
-1

編輯:謝謝你的解決方案賽勒斯。問題是我的cron作業不是postfix。
相反的:我的Postfix config for Linux郵件命令有什麼問題?

*/5 * * * * | /usr/bin/mail -s 'Scheduled Email' [email protected] 

工作需要安排,如:

*/5 * * * * echo "Message body" | /usr/bin/mail -s 'Scheduled Email' [email protected] 

我寫了一個bash腳本,它允許用戶安排一個cron作業發送電子郵件。我正在使用sharutils uuencode和mailutils郵件。

郵件命令從命令行工作正常,我收到我的Gmail帳戶和maillog上的電子郵件,我可以看到正在發送的郵件。 from是user @ machineName,to是[email protected]。但是,當我的一個計劃的cron作業嘗試使用郵件命令發送時,我遇到了問題。

與其通過命令行運行時相同,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' [email protected] 
*/15 * * * * | /usr/bin/mail -s 'Scheduled Email' [email protected] 

我希望能夠做的就是從一個虛擬地址發出。我不需要認證,我不需要從真實的電子郵件地址發送。我只需要cronjob以與郵件相同的方式正確發送,當我從命令行單獨運行它時。我需要更改什麼部分的配置?

謝謝!

+0

顯示您的cronjob。 – Cyrus

+0

@Cyrus - 更新OP來顯示我的腳本中的cronjs如何在crontab中查找 – CallumStyan

+0

哪位用戶運行此cronjob?請添加您的操作系統的名稱和版本。哪個數據包來自/ usr/bin/mail? – Cyrus

回答

1

試試這個:

*/5 * * * * echo "Hello, this is the body." | /usr/bin/mail -s 'Scheduled Email' [email protected]'. 
+0

由於某種原因,工程,謝謝!你有什麼想法,爲什麼沒有一個機構會使cron工作在田間使用錯誤? – CallumStyan

+0

您的語法錯誤。正確:'command |命令「或」命令「。隨意試試:'*/5 * * * */usr/bin/mail -s'預定電子郵件'name @ gmail.com''。也許它有效。 – Cyrus