发email程序出错的问题.
我的程序如下:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import javax.mail.internet.MimeMessage;
public class MailTest{
public static void main(String[]args){
try{
Properties props = new Properties();
Session sendMailSession;
Store store;
Transport transport;
PopupAuthenticator popAuthenticator = new PopupAuthenticator("abc", "111111");
sendMailSession = Session.getInstance(props,popAuthenticator);
props.put("mail.smtp.host", "smtp.126.com");
props.put("mail.smtp.auth","true");
Message newMessage = new MimeMessage(sendMailSession); //出错行
newMessage.setFrom(new InternetAddress("abc@126.com"));
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("abc@126.com"));
newMessage.setSubject("TEST");
newMessage.setSentDate(new Date());
newMessage.setText("你好,这是通过程序发的!");
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
System.out.println("邮件发送成功!");
}
catch(MessagingException m)
{
System.out.println(m.toString());
}
}
}
class PopupAuthenticator extends Authenticator
{
String username=null;
String password=null;
public PopupAuthenticator(String user,String pass)
{
username = user;
password = pass;
}
public PasswordAuthentication performCheck(String user,String pass)
{
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(username, password);
}
}
编译通过,但运行是出错.
出错信息:
Command : "C:\JBuilder9\jdk1.4\bin\java.exe" -classpath "E:\java\zxx\TestNet\sendmail\;C:\JBuilder9\jdk1.4\jre\lib\rt.jar;C:\JBuilder9\jdk1.4\lib\j2ee.jar;C:\JBuilder9\jdk1.4\lib\dt.jar;C:\JBuilder9\jdk1.4\lib\tools.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\dnsns.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\ldapsec.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\localedata.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\msbase.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\mssqlserver.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\msutil.jar;C:\JBuilder9\jdk1.4\jre\lib\ext\sunjce_provider.jar" MailTest
Directory : E:\java\zxx\TestNet\sendmail
java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
at MailTest.main(MailTest.java:21)
Exception in thread "main"
Process completed.
问题点数:50、回复次数:2Top
1 楼dw2003(雁无边)回复于 2006-03-04 17:59:30 得分 0
请问NoClassDefFoundError是什么意思是对应的找不到吗?但我已经用户语句
import javax.mail.internet.MimeMessage;
导进来,而且我看过帮助说明也构造函数也无错.Top
2 楼humanity(城市边缘的狼)回复于 2006-03-05 00:41:18 得分 0
我从你的 classpath 中并没有看到 mail.jar 和 activation.jar 文件啊。
j2ee.jar 中只有 API , 实现类则一般都用 JavaMail 的 Sun Reference Implementation 1.3 . 就是需要 mail.jar 和 JAF 中的 activation.jar 2个 jar 就行了,
mail.jar 包括了 j2ee.jar 中的 JavaMail API 那部分,和 JavaMail SUN RI 中的 imap.jar , smtp.jar , pop3.jar , mailapi.jar 的总和。
Top




