1、使用Yum 來安裝依賴包
yum -y install sendmail yum -y install mailx
2、獲取授權碼
下面以騰訊為例
https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
3.修改配置文件
vi /etc/mail.rc
添加以下內容
#開啟ssl set ssl-verify=ignore #下方輸入證書目錄,下方為centos系統證書默認位置,也自行生成證書並指定 set nss-config-dir=/etc/pki/nssdb # 下方填入你配置的第三方smtp服務器的地址及端口,如果使用的是雲服務器,安全組需要開放465端口(入口和出口) set smtp=smtps://smtp.163.com:465 # 認證方式 set smtp-auth=login # 下方輸入用於發送郵件的郵箱賬號 set smtp-auth-user=XXX@163.com # 下方輸入上方郵箱的客戶端授權碼 set smtp-auth-password=woeSEvrub213 # 設置發信人郵箱和昵稱 set from=XXX@163.com
4.發送郵件
[root@guanbin-k8s-master etc]# echo Hello World | mail -s test ******@qq.com
5.mail常用命令
mail命令是命令行的電子郵件發送和接收工具。操作的界面不像elm或pine那么容易使用,但功能非常完整。
語法
mail(選項)(參數)
選項
-b<地址>:指定密件副本的收信人地址; -c<地址>:指定副本的收信人地址; -f<郵件文件>:讀取指定郵件文件中的郵件; -i:不顯示終端發出的信息; -I:使用互動模式; -n:程序使用時,不使用mail.rc文件中的設置; -N:閱讀郵件時,不顯示郵件的標題; -s<郵件主題>:指定郵件的主題; -u<用戶帳號>:讀取指定用戶的郵件; -v:執行時,顯示詳細的信息。
參數
郵件地址:收信人的電子郵箱地址。
實例
直接使用shell當編輯器
mail -s "Hello from linuxde.net by shell" admin@linuxde.net hello,this is the content of mail. welcome to www.linuxde.net
第一行是輸入的命令,-s
表示郵件的主題,后面的admin@linuxde.net
則是郵件的接收人,輸入完這行命令后回車,會進入郵件正文的編寫,我們可以輸入任何文字,比如上面的兩行。當郵件正文輸入完成后,需要按CTRL+D結束輸入,此時會提示你輸入Cc地址,即郵件抄送地址,沒有直接回車就完成了郵件的發送。
使用管道進行郵件發送
echo "hello,this is the content of mail.welcome to www.linuxde.net" | mail -s "Hello from linuxde.net by pipe" admin@linuxde.net
使用管道直接敲入這行命令即可完成郵件的發送,其中echo后的是郵件正文。
使用文件進行郵件發送
mail -s "Hello from linuxde.net by file" admin@linuxde.net < mail.txt
使用上面的命令后,我們就可以把mail.txt文件的內容作為郵件的內容發送給admin@linuxde.net了。
使用上述三種方式都可以給外部郵箱進行郵件發送,但因為前面2中都是直接在shell中敲入郵件內容,因此無法輸入中文,即使我們使用粘貼的方式輸入了中文,那么收到的郵件也是亂碼的。但第3種方式,我們可以在window下編輯好郵件內容后,放到linux下,再進行發送,這樣就可以正常發送中文了。不過目前郵件的中文標題暫時沒有找到解決辦法。
因為mail程序本身就是調用sendmail來進行郵件發送的,因此我們可以在mail命令中使用sendmail的參數進行配置,比如我想使用特定的發件人發送郵件,可以使用如下命令:
mail -s "Hello from linuxde.net with sender" admin@linuxde.net -- -f user@linuxde.net<mail.txt
上面的命令中,我們使用了– -f user@linuxde.net這樣的參數,這是sendmail的選項,其中-f表示郵件的發送人郵件地址。
很多情況下,我們也需要使用郵件來發送附件,在linux下使用mail命令發送附件也很簡單,不過首先需要安裝uuencode軟件包,這個程序是對二進制文件進行編碼使其適合通過郵件進行發送,在CentOS上安裝該軟件包如下:
yum install sharutils
安裝完成后我們就可以來進行附件的發送了,使用如下命令:
uuencode test.txt test | mail -s "hello,see the attachement" admin@linuxde.net<mail.txt
完成后就可以把text.txt文件作為郵件的附件發送出去了。uuencode有兩個參數,第一個是要發送的文件,第二個是顯示的文件名稱。
這里我主要介紹的是在CentOS下使用mail發送電子郵件的一些使用方法,需要的要求是你的linux必須安裝了sendmail並開啟了,同時保證可以連接外網。另外,文章中提到的命令本人都經過親自測試,保證完全可用,不過你需要將命令中的電子郵件地址換成自己的電子郵件地址。
參考:https://man.linuxde.net/mail