shell郵件發送功能實現


   本文中以163郵箱為例,測試shell郵件發送功能。常見的工具有:mailx、sendmail、mutt等。

1、設置郵件客戶端

(1)啟用pop3、smtp服務,以支持第三方客戶端支持

(2)設置授權碼

2、安裝使用mailx工具

(1)安裝

yum -y install mail sendmail  #安裝
service sendmail restart #啟動服務,注:使用mail之前必須啟動sendmail

(2)配置,編輯/etc/mail.rc (CentOS系統),在末尾添加如下內容

# 發送郵件的配置
set from=your_account@163.com   #外部smtp服務器認證的用戶名
set smtp=smtp.163.com:25        #外部smtp服務器的地址
set smtp-auth=login             #郵件認證的方式
# 外部smtp服務器認證的用戶名
set smtp-auth-user=your_account@163.com
# 外部smtp服務器認證的用戶密碼(授權碼)
set smtp-auth-password=your_passwd
# 忽略驗證
set ssl-verify=ignore
set nss-config-dir=/etc/maildbs/

說明:bin/mail會默認使用本地sendmail發送郵件,這樣要求本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源占用。
而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的smtp服務器發送郵件的目的。

(3)使用mail命令發送郵件

  mail常見的使用方法有三種,如下:

方式一:直接使用shell當編輯器

# mail -s "郵件主題" 收件地址
hello,this is the content of mail.
welcome to www.mzone.cc

  第一行是輸入的命令,-s表示郵件的主題,后面的admin@mzone.cc則是郵件的接收人,輸入完這行命令后回車,會進入郵件正文的編寫,我們可以輸入任何文字,比如上面的兩行。當郵件正文輸入完成后,需要按CTRL+D結束輸入,此時會提示你輸入Cc地址,即郵件抄送地址,沒有直接回車就完成了郵件的發送。

方式二:使用管道進行郵件發送

echo "郵件內容" | mail -s "郵件主題" 收件地址
echo "郵件內容" | mail -s "郵件主題" -a 附件 收件地址 

  使用管道直接敲入這行命令即可完成郵件的發送,其中echo后的是郵件正文。

方式三:使用文件進行郵件發送

mail -s "郵件主題" 收件地址 < mail.txt

  使用上面的命令后,可把mail.txt文件的內容作為郵件的內容發送給admin@mzone.cc

4、使用

示例:

 echo "測試" | mail -s "測試郵件功能" 個人郵箱@xx.com

查看結果

 

mutt參考:Linux下使用mutt自動發送郵件 http://blog.csdn.net/xiongjiezk/article/details/50191515

Mutt中文手冊  https://handsomecheung.github.io/mutt-manual-cn/mutt-manual-1.5.19-cn.html

sendmail常用參數參考:sendmail  http://www.courier-mta.org/sendmail.html,或可參考man手冊


免責聲明!

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



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