1. 程式人生 > >Linux實用技巧——mail傳送郵件命令以及中文亂碼解決

Linux實用技巧——mail傳送郵件命令以及中文亂碼解決

文章目錄

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"