Shell 调用sendmai发邮件 subject中文乱码

原创 2013年12月06日 14:54:35

最近写一个Ksh 的脚本,调用sendmail 发送邮件。 邮件内容有超链接地址,所以使用html去处理,并且设置content-type=UTF-8

大致内容如下 [内容为本人随意写的,不涉及任何组织机构的商业秘密,请技术人员不必过分在意]

cat <<EOF >${tmp_3HK_content_Chi}

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
最新香港服務及產品資訊盡在123.com.hk
</title>
</head>
<body tyle="width:80%">
<p> 賬戶號碼:${PMCI_MOB_NBR}</p>
<p>不時更新以提供最新最快之香港服務及產品資訊,不時更新以提供最新最快之香港服務及產品資訊不時更新以提供最新最快之香港服務及產品資訊不時更新以提供最新最快之香港服務及產品資訊。
</p>
<p>若閣下申請停止收取此类推廣電郵,可致電(852) 1234 5678 聯絡客戶主任辦理。亦可<a href="${RT_EM_Hyperlink} ">按此</a>:登入香港網頁 > 個人資料管理 > 更改推廣媒介。
</p>
</body>
</html>
EOF

EMAIL_ADDRESS="邮箱地址"

Subject="最新香港服務及產品資訊"
        (
        echo "Subject: $Subject"
        echo "Subject: $title"
        echo "MIME-Version: 1.0"
        echo "Content-Type: text/html; charset=UTF-8 "
        echo "Content-Disposition: inline"
        cat $tmp_3HK_content_Chi
        ) | sendmail $EMAIL_ADDRESS

执行后发现收到的邮件内容正常显示,但是邮件标题即Subject是乱码。网上搜了各种方法,均没有解决问题。

试了

 

tmp_chi_subject=${ROOT}/bin/tmp_subject1.txt

 

 read title <${tmp_chi_subject}
        (
        echo "Subject: =?big5?x8fIzsG6t9vLv87Cxa/P18DxILXn19PU09arP2wq8=?$title"
        echo "Subject: $title"
        echo "MIME-Version: 1.0"
        echo "Content-Type: text/html; charset=UTF-8 "
        echo "Content-Disposition: inline"
        cat $tmp_3HK_content_Chi
        ) | sendmail $EMAIL_ADDRESS

可以解决Subject为乱码的问题。只是在Foxmail上看到的邮件标题是正常只有中文标题的,网页版的会变成【=?big5?x8fIzsG6t9vLv87Cxa/P18DxILXn19PU09arP2wq8=?最新香港服務及產品資訊】。

后来重新把shell脚本用note-pad 先设置为编码格式为Big5.

再把html格式的content的所有编码从UTF-8变成big5【不是BIG-5】,使得整个脚本的编码与输出的编码均保持一致,不需要把subject写到文件中,直接

       Subject="最新香港服務及產品資訊"
        (
        echo "Subject: $SUBJECT"
        echo "MIME-Version: 1.0"
        echo "Content-Type: text/html; charset=big5 "
        echo "Content-Disposition: inline"
        cat $tmp_3HK_content_Chi
        ) | sendmail $EMAIL_ADDRESS

就可以了。并且网页上看到的邮件与foxmail里面都是正常显示邮件标题和内容的哦


        

相关文章推荐

python邮件发送(带附件,解决中文乱码问题)

#-*- encoding: utf-8 -*- #导入smtplib和MIMEText import smtplib from email.Header import Header from ...
  • betry
  • betry
  • 2011年08月03日 16:53
  • 11636

Log4J 配置,自定义错误,邮件发送,解决中文乱码!

原文链接:http://blog.sina.com.cn/s/blog_56410d650100jl9b.html 所需jar包:在apache官网下载相关最新的jar包,并在项目中引用(act...

使用javamail发送包含八位验证码的邮件(完美解决中文乱码问题)

使用javamail发送包含八位验证码的邮件(完美解决中文乱码问题)文末附javamail...

python 接收邮件(下载附件,解决中文乱码)自测OK

原文   http://blog.sina.com.cn/s/blog_4deeda2501016eyf.html python收新邮件(解决了中文编码,可收附件和查看邮件信息) (2013-...

用ORACLE 存储过程发送HTML邮件,支持文本和HTML两种格式,增加防中文乱码

用ORACLE 存储过程发送HTML邮件,支持文本和HTML两种格式,增加防中文乱码

UTL_SMTP发送邮件,防中文乱码处理!

DECLARE V_CONN UTL_SMTP.CONNECTION; L_REC_ARR ARRAY; V_DB_NLS_CHARA...

解决SSH Secure Shell Client中文乱码问题

解决SSH Secure Shell Client中文乱码问题 一直使用SSH Secure Shell Client,该软件是免费的SSH远程登录软件。缺点是使用本地编码,比如wi...

SSH Secure Shell Client中文乱码的解决方法

这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要‘UTF-8’编码,Windows中文版的编码是非UTF-8。zh_CN.UTF-8是UTF编码的中文语言环...

linux shell中文乱码问题

linux shell中文乱码问题经常碰到, 以前也碰到过, 就听之任之了。 实际上, 有很多方法可以解决这个显示问题, 下面我来提供一种, 聊作记录: taoge@localhost test> l...
  • stpeace
  • stpeace
  • 2015年12月17日 22:53
  • 3272

SSH Secure Shell Client显示中文乱码

说这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要‘UTF-8’编码,恩恩,这下我终于知道Windows中文版的编码居然是非UTF-8了。 意思是我不换操作...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Shell 调用sendmai发邮件 subject中文乱码
举报原因:
原因补充:

(最多只允许输入30个字)