Linux實用技巧——mail傳送郵件命令以及中文亂碼解決
阿新 • • 發佈:2018-11-22
文章目錄
0 前言及準備
最近使用linux監控資料統計狀況以及警報,最常使用的就是mail命令。
準備:只需簡單註冊個國內的郵件服務商郵箱,如163、gmail等,也可以使用公司郵箱,需要安裝mailx工具,mailx是一個小型的郵件傳送程式。
1 mailx安裝及配置
1.1 安裝
執行如下命令:
[[email protected] ~]#yum install mailx
1.2 編輯配置檔案
執行如下命令:
[[email protected] ~]# vim /etc/mail.rc
編輯 mail.rc 檔案,內容如下:
# 對方收到郵件時顯示的發件人 set [email protected] # 指定第三方發郵件的smtp伺服器地址 set smtp=smtp.163.com # 第三方發郵件的使用者名稱 set [email protected] # 使用者名稱對應的密碼,有些郵箱填的是授權碼 set smtp-auth-password=xxx # SMTP的認證方式,預設是login,也可以改成CRAM-MD5或PLAIN方式 set smtp-auth=login
2 傳送郵件
2.1 無正文郵件
[[email protected] ~]# mail -s "[主題]" [收件地址]
示例:
[[email protected] ~]# mail -s "Test_Subject" [email protected]
2.2 有正文郵件
- 使用現有檔案(如html、txt等)作為正文檔案
命令如下:
####
[[email protected] ~]# mail -s "[主題]" [收件地址]< [檔案路徑(郵件正文.txt)]
####
或者:
####
[[email protected] ~]# cat [檔案路徑(郵件正文.txt)] | mail -s "[主題]" [收件地址]
###
- 無正文檔案:
命令如下:
####
[[email protected] ~]# echo "[正文內容]" | mail -s "[主題]" [收件地址]
####
3 郵件中文亂碼問題解決
對於中文亂碼問題一般是環境變數所致,但是在設定好了環境變數,使用測試指令碼可以發出郵件,但是使用crontab 例行的時候就會出現亂碼問題,這時候也可以在指令碼中新增環境變數即可,這種方式適用於大部分的中文亂碼問題:
即在指令碼頭部行新增如下環境變數:
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"