日期:2014-05-20  浏览次数:20921 次

java 发 email 附件问题
在doc, png, csv 我试了,都没有问题
但是xml 就不行了。

javax.mail.MessagingExceptionIOException while sending message;
  nested exception is:
java.io.IOException: "text/xml" DataContentHandler requires String object, was given object of type class [B
###javax.mail.MessagingException: IOException while sending message;
  nested exception is:
java.io.IOException: "text/xml" DataContentHandler requires String object, was given object of type class [B
---End---
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:566)
at com.amazon.ses.SendEmail.startSendEmail(SendEmail.java:118)
at com.amazon.ses.LoginSalesforce.login(LoginSalesforce.java:91)
at com.amazon.ses.LoginSalesforce.login(LoginSalesforce.java:47)
at com.amazon.ses.test.TestLogin.testSendDocuments(TestLogin.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
------最佳解决方案--------------------
java.io.IOException: "text/xml" DataContentHandler requires String object, was given object of type class [B

粗一看,DataContentHandler接收的处理对象是不是需要一个类型转换的过程,当前是class [B类型,需要的是String型

可能的话,可以看下这个类SMTPTransport.java:566
------其他解决方案--------------------
楼主  我的邮件发送的时候 错误为 554 DT:SPM查了下说是服务器标记成垃圾右键发送不出去   有没有解决办法源码如下

import javax.swing.JFrame;
import javax.swing.JFileChooser;
import java.awt.Container;
import java.awt.BorderLayout;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JLabel; 
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;