网站实现邮件发送
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/RegisterServlet.do" method="post">
用户名:<input type="text" name="username"> <br>
密码:<input type="password" name="password"><br>
邮箱:<input type="text" name="email"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
实体类
public class User implements Serializable {
private String username;
private String password;
private String email;
}
utils
package com.tian.utils;
import com.sun.mail.util.MailSSLSocketFactory;
import com.tian.pojo.User;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class Sendmail extends Thread{
private String from="QQ号@qq.com";
private String username="QQ号@qq.com";
private String password="授权码";
private String host="smtp.qq.com";
private User user;
public Sendmail(User user){
this.user=user;
}
@Override
public void run() {
try {
Properties prop = new Properties();
prop.setProperty("mail.host","smtp.qq.com");
prop.setProperty("mail.transport.protocol","smtp");
prop.setProperty("mail.smtp.auth","true");
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable","true");
prop.put("mail.smtp.ssl.sockeFactory",sf);
Session session=Session.getDefaultInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("QQ号@qq.com","授权码");
}
});
Transport ts = session.getTransport();
ts.connect(host,username,password);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO,new InternetAddress(user.getEmail()));
message.setSubject("用户注册邮件");
String info="用户注册成功,您的用户名:"+user.getUsername()+"您的密码:"+user.getPassword();
message.setContent(info,"text/html;charset=UTF-8");
message.saveChanges();
ts.sendMessage(message,message.getAllRecipients());
ts.close();
}catch (Exception e){
throw new RuntimeException(e);
}
}
}
RegisterServlet
package com.tian.servlet;
import com.tian.pojo.User;
import com.tian.utils.Sendmail;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class RegisterServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
String email = req.getParameter("email");
System.out.println(1111);
User user = new User(username, password, email);
Sendmail send = new Sendmail(user);
send.start();
req.setAttribute("message","注册成功,我们已经发了一封电子邮件,注意查收");
req.getRequestDispatcher("info.jsp").forward(req,resp);
}
}
info.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${message}
</body>
</html>