JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。
邮件用户服务器验证
ValidateUser.java
public class ValidateUser extends Authenticator implements Serializable{
private static final long serialVersionUID = 1L;
private String eName;//用户名
private String ePass;//密码
private String emailHost;//服务器地址
public ValidateUser(String name, String pass, String emailHost) {
super();
eName = name;
ePass = pass;
this.emailHost = emailHost;
}
public String getEmailHost() {
return emailHost;
}
public void setEmailHost(String emailHost) {
this.emailHost = emailHost;
}
public String getEName() {
return eName;
}
public void setEName(String name) {
eName = name;
}
public String getEPass() {
return ePass;
}
public void setEPass(String pass) {
ePass = pass;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.eName, this.ePass);
}
}
创建邮件内容类
MailContent.java
public class MailContent {
private String geter;//收件人
private String message;//内容
private String title;//主题
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getGeter() {
return geter;
}
public void setGeter(String geter) {
this.geter = geter;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
创建邮件发送类
public class Send {
private Properties props=System.getProperties();
private Session session;
private ValidateUser vu;
private MailContent mc;
public Send(ValidateUser vu,MailContent mc){
this.vu=vu;
this.mc=mc;
this.props.put("mail.smtp.host", vu.getEmailHost());
this.props.put("mail.smtp.auth", "true");
this.session =Session.getDefaultInstance(this.props, vu);
}
public void sendEmail() throws AddressException, MessagingException, UnsupportedEncodingException {
MimeMessage message = new MimeMessage(this.session);
message.setFrom(new InternetAddress(this.vu.getEName()));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(this.mc.getGeter()));
message.setSubject(MimeUtility.encodeText(this.mc.getTitle(),"utf-8","B"));
message.setContent(this.mc.getMessage(), "text/html;charset=utf-8");
message.saveChanges();
Transport.send(message);
}
}