歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux Bash下通過Mailx發送中文內容顯示為附件的解決

Linux Bash下通過Mailx發送中文內容顯示為附件的解決

日期:2017/2/28 15:43:55   编辑:Linux教程
mailx版本,這裡默認是mail是指向mailx程序的
  1. # ll /bin/mail
  2. lrwxrwxrwx. 1 root root 5 7月 22 2011 /bin/mail -> mailx
  3. # mail -V
  4. 12.4 7/29/08
mail.rc配置,設置外部smtp服務器
  1. cat /etc/mail.rc
  2. #set sendcharsets=iso-8859-1,utf-8
  3. set [email protected] smtp=smtp.163.com
  4. set smtp-auth-user=demo smtp-auth-password=demopassword smtp-auth=login
發送郵件,QQ郵箱裡無法看到內容,只看到一個附件。附件裡的內容就是我們發的中文內容
  1. #!/bin/bash
  2. ...
  3. echo "中文內容測試! " | /bin/mail -s "中文標題" [email protected]
  4. ...

但是手動輸入命令接收郵件內容卻顯示正常。或許是bash運行時系統編碼環境不通導致。查看系統編碼環境

  1. # locale
  2. LANG=zh_CN.gb18030
  3. LC_CTYPE="zh_CN.gb18030"
  4. LC_NUMERIC="zh_CN.gb18030"
  5. LC_TIME="zh_CN.gb18030"
  6. LC_COLLATE="zh_CN.gb18030"
  7. LC_MONETARY="zh_CN.gb18030"
  8. LC_MESSAGES="zh_CN.gb18030"
  9. LC_PAPER="zh_CN.gb18030"
  10. LC_NAME="zh_CN.gb18030"
  11. LC_ADDRESS="zh_CN.gb18030"
  12. LC_TELEPHONE="zh_CN.gb18030"
  13. LC_MEASUREMENT="zh_CN.gb18030"
  14. LC_IDENTIFICATION="zh_CN.gb18030"
  15. LC_ALL=
把發送命令更改為
  1. #!/bin/bash
  2. export LANG=zh_CN.gb18030
  3. echo "中文內容測試! " | /bin/mail -s "中文標題" [email protected]
  4. ...
則是接收郵件就正常顯示為中文了。
Copyright © Linux教程網 All Rights Reserved