javamail发送非txt格式的附件时报错

发布于 2021-11-15 09:27:39 字数 1950 浏览 789 评论 1

主要代码是这样的:   
  MimeMessage sendMess = new MimeMessage(session);
  BodyPart messageBodyParthtmltext = new MimeBodyPart();
  BodyPart messageBodyattach = new MimeBodyPart();
  String contentMessage=content;
  String filename=fileAttachment;
  try {
  messageBodyParthtmltext.setContent(content,"text/html;charset=gb2312"); //html文本
  MimeMultipart multipart = new MimeMultipart();   
  //multipart.setSubType("related");
  multipart.addBodyPart(messageBodyParthtmltext);
  //处理附件
  FileDataSource source = new FileDataSource(filename);
  messageBodyattach.setDataHandler(new DataHandler(source));
  messageBodyattach.setFileName(filename);
  multipart.addBodyPart(messageBodyattach);
  sendMess.setSubject(subject,"GB2312");
  sendMess.setFrom(new InternetAddress(sender));
  sendMess.setRecipients(Message.RecipientType.TO, receiveAddress);
  sendMess.setContent(multipart);
  sendMess.saveChanges();
  Transport.send(sendMess);
问题:附件是txt格式的可以发送出去,但发送jpg格式的时候就会报错了,我看了邮件信息已经生成了,就是发送的时候报错了
生成的邮件信息:
MIME-Version: 1.0
Content-Type: multipart/related;  
  boundary="----=_Part_9_21121948.1335595168741"
------=_Part_9_21121948.1335595168741
Content-Type: text/html;charset=gb2312
Content-Transfer-Encoding: 7bit
<img border="0" alt="" src="http://localhost:8080/MailStudy/kindeditor-v4.0.6/plugins/emoticons/images/13.gif" />
------=_Part_9_21121948.1335595168741
Content-Type: image/gif; name="D:\1.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D:\1.gif"
这里是一堆图片的编码,就不写了

------=_Part_9_21121948.1335595168741--
.(这是邮件结束标记)
报的错误是:DEBUG SMTP: got response code 451, with response: 451 4.0.0 Error processing message.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2021-11-15 23:44:31

我只知道txt是ascii,非txt基本上都是二进制

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文