1. 程式人生 > >Linux 中計劃任務把結果發送到你的郵箱

Linux 中計劃任務把結果發送到你的郵箱

pop process refused 問題 ORC md5 磁盤 處理 qq郵箱

在生活工作中,我們會經常寫一些任務計劃,比如定期檢查一下磁盤的使用情況,定期執行一些腳本、指等等,但是Linux系統中的機制是把結果以郵件的形式發送到用戶的郵箱裏,假如現在你出差了,但是你的計劃任務還在公司的電腦上進行著,這個時候你該怎麽辦呢?接下來我介紹一下怎麽用Linux系統給QQ郵箱、163郵箱等等發送郵件,這樣的話你的計劃任務就會把執行結果發送到你的郵箱裏,讓你隨時隨刻對你的主機了如指掌。

本文演示:

  • centos 7
  • qq郵箱

計劃任務的書寫看我前面的博客,超級詳細


利用系統的mail(25號端口)服務發送

  1. 編輯/etc/mail.rc,輸入下面的配置文件
    set from=設置用哪個郵箱發送郵件#收到郵件時顯示的發件人
    set smtp=smtp.qq.com#郵箱的域名
    set smtp-auth-user=你的QQ郵箱賬號#發郵件的用戶名
    set smtp-auth-password=郵箱的POP3/SMTP服務的授權碼
    set smtp-auth=login #SMTP的認證方式,默認是login,也可以改成CRAM-MD5或PLAIN方式

    獲取郵箱授權碼的方式:登陸你的郵箱
    技術分享圖片
    然後點擊賬戶
    技術分享圖片
    選擇開啟POP3/SMTP服務
    技術分享圖片
    然後獲取授權碼
    技術分享圖片

  2. 發送無正文郵件
    mail -vvv -s ”主題" 郵箱地址
  3. 發送有正文郵件
    mail -s "主題"  [email protected] < 文件(郵件正文.txt)
    cat 郵件正文.txt | mail -s 郵件主題  收件地址
    echo "郵件正文" | mail -s 郵件主題  收件地址
  4. 發送帶附件郵件
    mail -s "主題"  收件地址  -a 附件 < 文件(郵件正文.txt) 

利用ssl協議發送

  1. 編輯/etc/mail.rc,輸入下面的配置文件
    set from=設置用哪個郵箱發送郵件#收到郵件時顯示的發件人
    set smtp="smtps://smtp.qq.com:465"#郵箱的域名及端口號
    set smtp-auth-user=你的QQ郵箱賬號#發郵件的用戶名
    set smtp-auth-password=郵箱的POP3/SMTP服務的授權碼
    set smtp-auth=login #SMTP的認證方式,默認是login,也可以改成CRAM-MD5或PLAIN方式
    set nss-config-dir=/etc/pki/nssdb   #存放認證證書的地址
    set ssl-verify=ignore
  2. 郵箱發送格式同上

可能遇到問題

  1. mailx的版本太低
    [root@localhost ~]# rpm -qa mailx #查看自己的mailx版本
    mailx-12.5-19.el7.x86_64
    [root@localhost ~]# yum -y install mailx #安裝最新版的mailx
  2. 域名解析不成功
    [root@cyn(cyn) ~ ]# echo "今晚約嗎?"|mail -vvv -s "真帥" [email protected]
    Resolving host /smtp.qq.com . . .Could not resolve host: /smtp.qq.com
    "/root/dead.letter" 11/330
    . . . message not sent.

    解決方法:
    a. 增加dns解析

    [root@cyn(cyn) ~ ]# vim /etc/resolv.conf 
    #在本文件中增加一條記錄,必須寫在第一個,因為這個文件時順序執行,會解析第一個nameserver,第一個解析不了再去解析下一個
    nameserver 114.114.114.114
    nameserver 100.100.2.136
    nameserver 100.100.2.138
  3. 連接超時
    [root@cyn(cyn) ~ ]# echo "今晚約嗎?"|mail -vvv -s "真帥" [email protected]
    Resolving host smtp.qq.com . . . done.
    Connecting to 14.17.57.241:465 . . . connected Refused.
    . . . message not sent.

    解決方法:基本上都是網絡問題了還有本身防火墻

    [root@localhost ~]# iptables -F
    [root@localhost ~]# setenforce 0

網易郵箱也可以,設置方法同QQ郵箱,下面介紹一下獲取授權碼
登陸網易郵箱,點擊設置,開啟POP3/SMPT服務,點擊保存
技術分享圖片
點擊客戶端授權密碼,再點擊重置密碼
技術分享圖片
獲取授權碼
技術分享圖片

但是網易郵箱會把發過去的郵件當成垃圾郵件處理,使用的時候需要註意。

Linux 中計劃任務把結果發送到你的郵箱