81,122
社区成员




package com.mail.bean;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
* 在javamail中,如果需要认证,对于程序员来说必须继承Authenticator抽象类
* @author Administrator
*
*/
public class MyAuthor extends Authenticator {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public MyAuthor(String password, String username) {
super();
this.password = password;
this.username = username;
}
public MyAuthor() {
super();
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
}
package com.mail.test;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.mail.bean.MyAuthor;
public class MailTest {
/**
* JAVA邮件测试(PS:没有成功过)
* @param args
*/
public static void main(String[] args) {
Properties p=new Properties();//该属性对象用来保存服务器的地址和发送协议及端口号
p.setProperty("mail.transport.protocol", "smtp");//确定发送协议
p.setProperty("mail.smtp.host","smtp.qq.com");//确定服务器地址
p.setProperty("mail.smtp.port","25");//确定服务器发送邮件协议smtp的端口号
p.setProperty("mail.smtp.auth","true");//确定是否安全认证,
String username="******";
String password="********";
MyAuthor auth=new MyAuthor(username,password);//根据用户名和密码构造认证对象
Session session=Session.getDefaultInstance(p,auth);//根据连接服务器的信息和认证对象来获取与服务器的会话
Message msg=new MimeMessage(session);//根据会话来构造消息
try {
msg.setFrom(new InternetAddress(username));//设置发件人地址
msg.setRecipient(RecipientType.TO, new InternetAddress(username));//设置收件人地址
msg.setSentDate(new Date());//设置发送时间
msg.setSubject("to myself");//设置消息的主题
msg.setText("use javamail send!");//设置消息的文本
Transport.send(msg);//发送消息
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}[code=Java]
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
at javax.mail.Session.loadProvidersFromStream(Session.java:928)
at javax.mail.Session.access$000(Session.java:174)
at javax.mail.Session$1.load(Session.java:870)
at javax.mail.Session.loadResource(Session.java:1084)
at javax.mail.Session.loadProviders(Session.java:889)
at javax.mail.Session.<init>(Session.java:210)
at javax.mail.Session.getDefaultInstance(Session.java:299)
at com.mail.test.MailTest.main(MailTest.java:30)