本文中以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手冊