此情况适用于何处?
一般注册的时候都有邮箱验证,本来想使用短信接口的,但是要钱啊,无奈转而使用邮件系统了
首先你需要两个支持邮件所需的jar 包:http://download.csdn.net/detail/u011871921/7545977
2.新建一个Servlet,我的叫MailServlet。下面直接附源码了:
package com.sencloud.img;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
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.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/MailServlet" )
public class MailServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public MailServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//收件人
String To = "110@qq.com";
//发件人
String From = "120@qq.com";
//邮件主题
String subject = "test email";
//邮件内容
String body = "我是一个测试邮件" ;
//发件人的QQ,注意此处千万不要加“@qq.com”
final String mailbox_username="110" ;
//发件人的QQ密码
final String mailbox_password="password";
try {
Properties props = new Properties();// 创建一个Properties的实例
props.put( "mail.smtp.host", "smtp.qq.com");// 设置发信服务器
props.put( "mail.smtp.auth", "true" );// 要经过身份验证
Session session = Session.getInstance(props,new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(mailbox_username,
mailbox_password);
}
});
MimeMessage message = new MimeMessage(session);// 得到MimeMessage的实例
message.setFrom( new InternetAddress(From));// 设置发件人
message.addRecipients(Message.RecipientType. TO,InternetAddress.parse(To)); // 设置收件人,可以同时指定多个收件人
message.setSubject(subject); // 设置邮件的主题
message.setSentDate( new Date());
message.setText(body); // 设置邮件的内容文本
Transport transport = session.getTransport("smtp" );// 得到Transport类的一个实例
transport.connect( "smtp.qq.com",mailbox_username,mailbox_password); // 连接发信服务器
transport.sendMessage(message, message.getAllRecipients());// 发送邮件
System. out.println("邮件发送成功" );
transport.close(); // 发送之后关闭
} catch (AddressException e) {
e.printStackTrace();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
4.有时候运行报这样的错
javax.mail.AuthenticationFailedException
,clean一下工程吧。
5.基本完成,有什么问题请留言。