Linux 命令詳解(十二)Systemd 入門教程:使用定時器發送郵件(mail)


Systemd 定時器教程:http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html

一、定時任務

Systemd 定時任務:每小時發送一封電子郵件

二、郵件腳本

mail.sh 內容

#!/usr/bin/env bash

echo "This is the mail test" | /usr/bin/mail -s "Hi Tinywan" 756684177@qq.com

 執行腳本

1、提示

 Please install an MTA on this system if you want to use sendmail!

2、安裝SSMTP服務  

sudo apt-get install ssmtp

3、使用SSMTP替代sendmail/postfix 

一般情況下,很多 Linux 發行版都使用 Sendmail 或 Postfix 作為默認了電子郵件系統,我們之所以使用 SSMTP 就是為了使用外部 SMTP 中繼,因此要將 SSMTP 配置為系統默認,首先就得停用 sendmail 或 postfix 服務。

systemctl stop sendmail
systemctl stop postfix

如果你使用較早版本 Linux,可以使用如下命令停用服務:

service sendmail stop
service postfix stop

注意:還需停止 sendmail 或 postfix 服務隨系統啟動哦,最好還是直接卸載掉吧。

4、配置SSMTP使用 QQ 郵件地址

使用 vim 或你喜歡的任意編輯器對 /etc/ssmtp/ssmtp.conf 文件進行編輯,我們以 QQ 的 SMTP 服務器為例,如果你使用其它 SMTP 請自行按服務商的官方文檔進行修改: 

www=1722318623@qq.com mailhub=smtp.qq.com:587 AuthUser=1722318623@qq.com AuthPass=xxxxxxxxxxxxxxxxx
UseTLS=YES
UseSTARTTLS=YES
FromLineOverride=YES
RewriteDomain:qq.com

 注意:以上紅色為你使用QQ郵件服務器申請的郵件信息,請配置為你的郵件信息  

配置文件修改並保存好之后我們就可以用上 QQ 提供的可靠郵件服務了,現在先用如下命令先發個測試郵件來看看: 

 echo "This is a test e-mail" | mail -s "Test Email" overcome.wan@gmail.com

發送測試郵件時遇到類似如下提示:

sendmail: Cannot open mail:25

那是因為 ssmtp 默認會嘗試使用標准的 SMTP 25 端口去連接郵件服務器,如果你所使用的 SMTP 中繼像 Gmail 或 QQ 這樣采用了 TLS 加密的非標准端口,還需要到 /etc/ssmtp/revaliases 配置文件中對發件人、服務器地址和端口進行指明:

www:1722318623@qq.com:smtp.qq.com:587
mainuser:1722318623@qq.com:smtp.qq.com:587

 配置好后繼續測試

echo "This is a test e-mail" | mail -s "Test Email" 756684177@qq.com

郵件提示信息

至此,郵件發送配置完成

三、Service 單元

新建 Service 非常簡單,就是在/usr/lib/systemd/system目錄里面新建一個文件,比如:tinywan-timer.service文件,你可以寫入下面的內容。  

  

小知識:

Linux下使用vi新建文件保存文件時遇到錯誤:E212: Can't open file for writing

以上問題是由於權限問題導致的,解決方法有以下思路: 

  • 1、使用root進行登錄,然后再操作。
  • 2、在使用命令時,前面加sudo。
  • 3、如果是多級文件夾的文件時,由於這個文件夾沒有創建,所以要先創建這個文件夾,再來操作這個文件。

參考

1、SSMTP—讓Linux系統從Office 365發送郵件

2、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM