使用ssl方式发送邮件的时候标题和内容中间的乱码是什么东东?求各位解答。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
应该是邮件的头文件,估计保存了一些邮件发送接收服务器之间相联系的加密信息.密钥什么的.######
你是想发送附件?我是用的common-email 组件,有做封装的,你有兴趣的话,可以看下它的源码吧.如果只是想实现功能的话,其实很简单的:
/**
* 发送邮件,包含多个附件,发件人等配置信息在email.properties中配置
* @param addr 收件人地址
* @param subject 邮件主题
* @param content 邮件内容
* @param paths 多个附件地址
*/
public static void sendEmail(String addr,String subject,String content,String[] paths) {
Pattern p = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
if(StringUtils.isBlank(addr) || !p.matcher(addr).matches()) {
throw new IllegalArgumentException("the addr is not a legal email addrs:" + addr);
}
Map<String,String> map = EmailUtils.loadEmailConfig();
HtmlEmail email = new HtmlEmail();
try {
email.setHostName(map.get("email.hostname"));
email.setCharset(map.get("email.charset"));
email.addTo(addr);
email.setFrom(map.get("email.sender"));
email.setAuthentication(map.get("email.auth.user"),
map.get("email.auth.pwd"));
email.setSubject(subject);
email.setHtmlMsg(content);
/**
* 添加附件
*/
for(EmailAttachment att : getAttachs(paths)) {
email.attach(att);
}
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
private static List<EmailAttachment> getAttachs(String[]paths) {
List<EmailAttachment> attachs = new ArrayList<EmailAttachment>();
if(paths != null) {
for(String path : paths) {
EmailAttachment attach = new EmailAttachment();
//解决附件的中文名称 乱码问题 */
String encoding = System.getProperty("file.encoding");
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String[] str = path.split("\\\\");
String title = str[str.length-1];
attach.setName("=?"+encoding+"?B?"+enc.encode(title.getBytes())+"?=");
attach.setPath(path);
attachs.add(attach);
}
}
return attachs;
}
我的意思是。我发送一封邮件的时候附件是*.doc或者别的文件。
然后我用二进制读取之后传一个byte数组到发送邮件的地方。
我发送的邮件中附件是有,但是附件中全部是乱码。
@梦无涯 不是的,先读取一个文件为二进制。
然后把读到的二进制数组传到发送邮件的方法。最后发送出去。
并不是读邮件的附件。这个图片是我在附件里面打开时候显示的乱码。也就是附件的内容是乱码。
######如果只是乱码问题,应该可以着手解决一下,程序转换一下编码格式什么的,应该可以解决吧.######乱码的话,参考下这边的解决方案吧. http://bbs.csdn.net/topics/110144296######@梦无涯 这些都试过了。不行的。