2 weidongbeyond weidongbeyond 于 2014.02.12 16:10 提问

javamail发送邮件报错,求指教。

前段时间写了一个简单的javamail发送邮件的功能,测试功能正常后就没管了。今天再次测试的时候,发现居然报错了。求大神指点指点。
package com.temp.test;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
@author xuyl@scoretk.com
@date 2014-2-11 上午06:53:10
*/
public class MailUtil {
static int port = 25;
static String server = "smtp.163.com";//邮件服务器mail.cpip.net.cn
static String from = "张三";//发送者,显示的发件人名字
static String user = "cqsiai@163.com";//发送者邮箱地址
static String password = "admin123";//密码
public static void sendEmail(String email, String subject, String body) throws UnsupportedEncodingException {
try {
Properties props = new Properties();
props.put("mail.smtp.host", server);
props.put("mail.smtp.port", String.valueOf(port));
props.put("mail.smtp.auth", "true");
Transport transport = null;
Session session = Session.getDefaultInstance(props, null);
transport = session.getTransport("smtp");
transport.connect(server, user, password);
MimeMessage msg = new MimeMessage(session);
msg.setSentDate(new Date());
InternetAddress fromAddress = new InternetAddress(user,from,"UTF-8");
msg.setFrom(fromAddress);
InternetAddress[] toAddress = new InternetAddress[1];
toAddress[0] = new InternetAddress(email);
msg.setRecipients(Message.RecipientType.TO, toAddress);
msg.setSubject(subject, "UTF-8");

msg.setText(body, "UTF-8");
msg.saveChanges();
transport.sendMessage(msg, msg.getAllRecipients());
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String args[]) throws UnsupportedEncodingException
{

        sendEmail("378675113@qq.com","邮件测试","hello");//收件人
        System.out.println("ok");
    }

}

报错内容:
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=UTF-8
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1177)
at com.temp.test.MailUtil.sendEmail(MailUtil.java:45)
at com.temp.test.MailUtil.main(MailUtil.java:55)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=UTF-8
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:841)
at javax.activation.DataHandler.writeTo(DataHandler.java:295)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1773)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1121)
... 2 more
ok

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!