==version 1.0==
==laster edit:2010.11.25==
因为需要从linux命令行发送邮件,所以稍微研究了一下mail工具(环境Debian 5.0 64bit MTA由EXIM4 提供,使用zh_cn.utf-8语言环境,bash命令行环境)。
开始使用
》mail -s <主题> <xxx@emailhost> < <emailtextfile>
|
形式发送,英文很正常,但中文有乱码,后研究mail的手册,采用
》mail -a "Content-Type:text/plain;charset=utf-8" -s <主题> <xxx@emailhost> < <emailtextfile>
|
形式来发送,则文件具体内容正常了,但如果邮件主题中有中文,则还是显示乱码,看来"Content-Type:text/plain;charset=utf-8" 不影响邮件主题解析。
后查到要在标题中正常显示也是需要指定主题部分编码,形式是
=?<编码名称>?
?<主题内容的B/Q编码>?=
其中编码名称可以是utf-8或者gb2312等等
B/Q 分别代表base64或quoted_printable 编码
在Debian下有base64转码命令工具 base64,它的使用很简单
OPTION主要有
-d 表示解码
-i 和-d配合使用,表示忽略非字符
而不加参数就是对文件编码。
所以最后的命令成了
》mail -a "Content-Type:text/plain;charset=utf-8" -s "=?utf-8?B?`echo <主题> | base64`?=" <xxx@emailhost> < <emailtextfile>
|
注意命令中的反引号,根据bash命令行特性,还可以改为
》mail -a "Content-Type:text/plain;charset=utf-8" -s "=?utf-8?B?$(echo <主题> | base64)?=" <xxx@emailhost> < <emailtextfile>
|
阅读(1927) | 评论(0) | 转发(0) |