Command

SendEmail 有沒有一種方法可以讓您擁有自定義文本並在其下輸出命令?

  • June 2, 2020

我正在嘗試使用 SendEmail。我想要的是我收到一封帶有命令輸出的電子郵件,ls但在該輸出之上我想要一個帶有一些解釋的自定義文本。如果我嘗試-u它會覆蓋我的ls命令輸出。

我使用的命令:

ls home/ec2-user/client_certs/ | grep '.ovpn' | sendemail -o tls=yes -f Emailthatsendmail@company -t Myemail@company -s smtp.office365.com:587 -xu Emailthatsend@company -xp passwordemailthatsend -u "[Encrypted] Access to VPN Service" -m Users who have access to the VPN service, if something is wrong contact EMAILofCompany

為了隱私,我更改了電子郵件和密碼。

結果:我收到一封主題和正文正確的加密郵件:有權訪問 vpn 服務的使用者,如果出現問題,請聯繫 EMAILofCompany

ls命令無處可尋,但如果我不使用

-m Users who have access to the VPN service, if something is wrong contact EMAILofCompany

我收到一封郵件,我可以在其中看到命令的輸出,但看不到自定義消息,因為我刪除了它。

我正在使用 Amazon Linux 2 AMI

SendEmail 版本:sendemail-1.56

將您的自定義消息放入文件中,例如:/some/path/custom-message.txt

然後:

(cat /some/path/custom-message.txt; ls -d home/ec2-user/client_certs/*?ovpn*) | sendemail -o tls=yes -f Emailthatsendmail@company -t Myemail@company -s smtp.office365.com:587 -xu Emailthatsend@company -xp passwordemailthatsend -u "[Encrypted] Access to VPN Service"

理由:

使用該-m選項,sendemail從選項參數中獲取消息並完全忽略管道標準輸入。你不想要那個,所以不要使用這個-m選項。相反,通過添加括號,括號內的所有命令/管道的輸出按指定順序進入sendemail的標準輸入。

引用自:https://unix.stackexchange.com/questions/589065