关于使用javamail包发送邮件时编码问题的解决:
1. 在发送正文时指定正文编码:
在发送邮件时使用
MimeBodyPart body = new MimeBodyPart();
body.setContent(content, "text/html;charset=GB2312");
注意此时的content编码必须是所指定的编码格式。
2. 在设置邮件标题时也要指定标题的编码:
MimeMultipart mmp=new MimeMultipart();
mmp.setSubject(subject, "GB2312");
同上也要求subject的编码和指定的编码一致。
3. 发送正文时也可以在header中指定传输编码:
body.setHeader("Content-Transfer-Encoding", "base64"); // 指定使用base64编码
4. 发送名称含中文的附件到邮件服务器,用别的邮件接收程序接收到的附件名显示为乱码
解决办法:
在调用MimeBodyPart的setFileName()时使用Base64编码。例如:
BASE64Encoder enc = new BASE64Encoder();//该类位于jre/lib/rt.jar中
//fds为FileDataSource实例
mbp.setFileName("=?GBK?B?"+enc.encode((fds.getName()).getBytes())+"?=");
5.
Gmail、163、qq邮箱都不可以随意更改发送人邮件地址,即setFrom的时候完整邮箱地址必须与前面设置的用户名和smtp服务器对应。而263.sina则可以随意设置发送人邮件地址。
6.生成附件,replaceAll时要改编码。
byte[] tmp1 = this.getName().getBytes("gb2312");
String tmpAcctName1 = new String(tmp1);
templateContent = templateContent.replaceAll("##Name##",
tmpAcctName1); //替换用户名称
分享到:
相关推荐
Jmail组件Jmail组件Jmail组件Jmail组件
JMail JMailJMail JMail JMail
(2)详细日志能力,便于你查看问题所在; (3)设置邮件发送的优先级; (4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。 (5)密件发送/(CC)抄送/紧急信件发送...
jmail组件 ,最新版 ,我现在在使用
jmail.dll vs2005,2008发送邮件
JMAIL4.0 VB源码 测试成功
Jmail 4.3组件下载 内含jmail.dll 4.3.0.0
JMail 4.4 邮件模块 JMail 4.4 邮件模块 JMail 4.4 邮件模块
jmail4.3.rar,jmail4.3.rar,jmail4.3.rar,jmail4.3.rar,jmail4.3.rar,jmail4.3.rar
jmail 4.5 组件下载 内含jmail.dll 4.5.0.0 内含jmail 4.5使用说明
jmail表单发送邮件,可以发送邮件,必须有jmail,表单发送
(2)详细日志能力,便于你查看问题所在; (3)设置邮件发送的优先级; (4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。 (5)密件发送/(CC)抄送/紧急信件发送...
jmail4.5 ,jmail.dll 及安装说明
JMAIL的功能是使用JMAIL组建通过在线表单方式发送信件到指定信箱。
jmail组件
Jmail邮件系统案例
.net的jMail.dll 包括:Interop.jmail.dll,jMail.dll 注册组件代码: copy jmail.dll %windir%\system32 regsvr32 %windir%\system32\jmail.dll
JMail45_免费版运行环境:Win9X/Win2000/WinXP/Win2003/软件语言:简体中文
jmail 直接导入,参考代码 使用 163邮箱要通过认证才可以使用
现在越来越流行的Jmail使用方法介绍,Jmail的学习非常简单,但功能却十分强大。