您的位置:首页 > 编程语言

J2EE实用工具之邮箱验证代码实现

2013-06-08 18:34 232 查看
其实都是调用别人搞好的东西,所以说不难实现,下面有源码还有测试代码,封装之后确实很好使用,不过需要大家去下载一个jar包,叫做javax.mail.jar

MailAuthenticator类用于验证,就是你自己的邮箱的账号和密码需要填写。

import javax.mail.Authenticator;

public class MailAuthenticator extends Authenticator {
private String userName;
private String password;

public MailAuthenticator(String userName, String password) {
this.userName = userName;
this.password = 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;
}

}


下面MailContent类是指对于发送邮件的主题和内容的填写:

package com.eshopping.util.mailConfirm;

public class MailContent {
private String subject;
private String content;

public MailContent() {

}

public MailContent(String subject, String content) {
this.subject = subject;
this.content = content;
}

public String getSubject() {
return subject;
}

public void setSubject(String subject) {
this.subject = subject;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}
}


最后一个就是核心类,MailSender负责邮件的发送,至于如何使用,可以看看最后我贴出的测试代码:

package com.eshopping.util.mailConfirm;

import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailSender {
private final transient Properties props = System.getProperties();
private transient MailAuthenticator authenticator;
private transient Session session;

public MailSender(final String userName, final String password) {
final String smtpHostName = "smtp." + userName.split("@")[1];
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", smtpHostName);
authenticator = new MailAuthenticator(userName, password);
session = Session.getInstance(props, authenticator);
}

private void send(String recipient, String subject, Object content) throws AddressException, MessagingException {
final MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(authenticator.getUserName()));
message.setRecipient(RecipientType.TO, new InternetAddress(recipient));
message.setSubject(subject);
message.setContent(content.toString(), "text/html;charset=utf-8");
Transport.send(message, authenticator.getUserName(), authenticator.getPassword());
}

public void send(String recipient, MailContent mail) throws AddressException, MessagingException {
send(recipient, mail.getSubject(), mail.getContent());
}
}


测试代码如下:

package com.eshopping.test;

import javax.mail.MessagingException;
import javax.mail.internet.AddressException;

import com.eshopping.util.mailConfirm.MailContent;
import com.eshopping.util.mailConfirm.MailSender;

public class MailSenderTest {
public static void main(String[] args) {
MailSender ms = new MailSender("your email address", "your password");
try {
ms.send("who you send to", new MailContent("mail title", "mail content"));
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: