应该是邮件的头文件,估计保存了一些邮件发送接收服务器之间相联系的加密信息.密钥什么的.######
引用来自“梦无涯”的答案
应该是邮件的头文件,估计保存了一些邮件发送接收服务器之间相联系的加密信息.密钥什么的.
我猜也是,对了请问你有一个附件读取成二进制后发送的的经验么?
######
引用来自“养不胖”的答案
引用来自“梦无涯”的答案
应该是邮件的头文件,估计保存了一些邮件发送接收服务器之间相联系的加密信息.密钥什么的.
我猜也是,对了请问你有一个附件读取成二进制后发送的的经验么?
你是想发送附件?我是用的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;
}
######这是JavaMail的版本:
http://chengyue2007.iteye.com/blog/787151######
@梦无涯 不行,我要的不是这种效果。
我的意思是。我发送一封邮件的时候附件是*.doc或者别的文件。
然后我用二进制读取之后传一个byte数组到发送邮件的地方。
我发送的邮件中附件是有,但是附件中全部是乱码。 ######不太明白,你是想要读取邮件的附件么?######
@梦无涯 不是的,先读取一个文件为二进制。
然后把读到的二进制数组传到发送邮件的方法。最后发送出去。
并不是读邮件的附件。这个图片是我在附件里面打开时候显示的乱码。也就是附件的内容是乱码。 ######如果只是乱码问题,应该可以着手解决一下,程序转换一下编码格式什么的,应该可以解决吧.######乱码的话,参考下这边的解决方案吧.
http://bbs.csdn.net/topics/110144296######
@梦无涯 这些都试过了。不行的。