JavaMail 发送问题探讨

guo_dongliang 2005-02-28 04:09:22
代码如下

try {
Message rs = new MimeMessage(session);

Address from = new InternetAddress(this.address);
rs.setFrom(from);
rs.setSentDate(new Date());
// rs.setRecipient(RecipientType.TO, new InternetAddress(toAddress));
rs.addRecipient(Message.RecipientType.TO,new InternetAddress(toAddress));

rs.setSubject(subject);
Multipart mp = new MimeMultipart();
BodyPart html = new MimeBodyPart();
html.setContent(content, "text/plain");
mp.addBodyPart(html);
if (files != null && files.length > 0) {

for (int i = 0; i < files.length; i++) {
MimeBodyPart mbp = new MimeBodyPart();
FileDataSource fds = new FileDataSource(files[i]);
mbp.setDataHandler(new DataHandler(fds));
mbp.setFileName(MimeUtility.encodeWord(files[i], "GBK", null));
mp.addBodyPart(mbp);
}
}

//rs.setContent(mp);
rs.setContent(content, "text/plain");
rs.saveChanges();
// rs.setText("hello ,I love you");

Transport transport = session.getTransport("smtp");
transport.connect(server,username, password);
System.out.println(2.5);
if(rs!=null)
{
// transport.sendMessage(rs, rs.getAllRecipients());

transport.send(rs, rs.getAllRecipients());
System.out.println(3);
}
我发送时老有一个错误:
发生在transport.send()...
说NoClassDefFounderError:com/sun/activation/registries/LogSupport
但是我已经
import javax.activation.*;
...全文
988 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mail25 2005-02-28
你除了要有mail.jar之外,还要有activation.jar这个包(它是j2ee中的)

还要放在你的Lib目录里去
回复
guo_dongliang 2005-02-28
明白了
我重新找了个J2EE.JAR问题解决了,我那个是从SUN上下来的
回复
flyxxxxx 2005-02-28
你除了要有mail.jar之外,还要有activation.jar这个包(它是j2ee中的)
回复
guo_dongliang 2005-02-28
楼上的兄弟我一定记得给你分.
我找了javax/activation没有那个类,
但为什么MimeMessage.saveMessage()会调用到javax/activation/registries/LogSupport这个类啊?
因为我程序里没有用到这个类
你说是不是因为我COPY的mail.jar版本不对呢?

回复
guo_dongliang 2005-02-28
我的程序中rs.saveChanges();发生了错误


java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:111

at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:44)
at javax.activation.DataHandler.getCommandMap(DataHandler.java:136)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:
67)
at javax.activation.DataHandler.getContent(DataHandler.java:501)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:110
)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1927)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1908)
回复
keyong19ryry 2005-02-28
说的是com/sun/activation/registries/LogSupport,有可能是你程序中用到的类在实现的时候用到了这个class,可以检查一下你用的jar里边有没有包含LogSupport这个class的包
另外import javax.activation.*;只能引用javax/activation/*.class,如果javax/activation/下有目录registries,而LogSupport.class在registries目录中,则不能被引用
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2005-02-28 04:09
社区公告
暂无公告