Chinaunix首页 | 论坛 | 博客
  • 博客访问: 703257
  • 博文数量: 95
  • 博客积分: 1773
  • 博客等级: 上尉
  • 技术积分: 1653
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-17 23:28
文章分类
文章存档

2018年(2)

2017年(10)

2016年(7)

2015年(48)

2014年(2)

2013年(2)

2012年(2)

2011年(7)

2010年(7)

2009年(3)

2008年(1)

2007年(4)

分类: LINUX

2010-11-25 17:49:56

==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,它的使用很简单
   

》base64 [OPTION] [FILE]

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) |
给主人留下些什么吧!~~