簡體   English   中英

關閉/重新啟動期間無法發送Unix郵件

[英]Unable to send unix mail during shutdown/reboot

我們有一個perl腳本,它會在系統即將關閉時嘗試發送電子郵件通知。 為此,我們捕獲SIGTERM並調用Unix mail命令以在信號處理程序中發送電子郵件。 捕獲了SIGTERM,但是Unix郵件日志顯示在關閉期間,FROM和TO地址已從user@companyname.com更改為user @ hostname。 知道為什么系統會這樣做以及如何預防嗎? (請注意:當我們運行腳本並從終端終止進程時,同一封電子郵件也可以正常工作)

這是perl代碼段:

$SIG{TERM} = \&signal_handler;

sleep(3600);

sub signal_handler { 

my $email_address = 'user@companyname.com';

system("echo \"TestBody\" | mail -s \"TestEmailSubject\" -c \"$email_address\" -r \"$email_address\" \"$email_address\"");

}

這是關機期間在/ var / log / mail / mail中打印的內容:

Sep 17 21:17:04 postfix/postfix-script[7009]: starting the Postfix mail system

Sep 17 21:17:10 postfix/master[7011]: daemon started -- version 2.10.1, configuration /etc/postfix

Sep 17 21:17:10 postfix/pickup[10349]: 35F801809C9: uid=0 from=root

Sep 17 21:17:10 postfix/cleanup[10356]: 35F801809C9: message-id=<20190917211710.35F801809C9@HOSTNAME.net>

Sep 17 21:17:10 postfix/qmgr[10350]: 35F801809C9: from=root@HOSTNAME.net, size=1618, nrcpt=1 (queue active)

Sep 17 21:17:10 postfix/local[10372]: 35F801809C9: to=root@HOSTNAME.net, orig_to=<root>, relay=local, delay=13, delays=13/0.01/0/0, dsn=2.0.0, status=sent (delivered to file: /dev/null)

這是當我們從終端終止進程時的工作情況:

Sep 17 21:20:41 postfix/pickup[10349]: E5328180968: uid=14936 from=user@COMPANYNAME.com

Sep 17 21:20:41 postfix/cleanup[22690]: E5328180968: message-id=<5d814e29.qZd+wgg47afpUdbd%user@COMPANYNAME.com>

Sep 17 21:20:41 postfix/qmgr[10350]: E5328180968: from=user@COMPANYNAME.com, size=544, nrcpt=1 (queue active)

Sep 17 21:20:41 postfix/smtp[22692]: E5328180968: to=user@COMPANYNAME.com, delay=0.06, delays=0.01/0/0/0.05, dsn=2.0.0, status=sent (250 2.0.0 OK 4E/77-59832-92E418D5)

postfix系統可能在關閉過程中比腳本更早地關閉。 您是否已在腳本中確認腳本嘗試發送電子郵件郵件系統仍處於啟動狀態?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM