JavaWeb应用中使用JavaMail发送邮件



 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 import me.gacl.domain.User;
 9 import me.gacl.service.UserService;
10 
11 public class RegisterServlet extends HttpServlet {
12 
13     public void doGet(HttpServletRequest request, HttpServletResponse response)
14             throws ServletException, IOException {
15         try{
16             String username = request.getParameter("username");
17             String password = request.getParameter("password");
18             String email = request.getParameter("email");
19             User user = new User();
20             user.setEmail(email);
21             user.setPassword(password);
22             user.setUsername(username);
23             
24             System.out.println("把用户信息注册到数据库中");
25             //用户注册成功之后就使用用户注册时的邮箱给用户发送一封Email
26             //发送邮件是一件非常耗时的事情,因此这里开辟了另一个线程来专门发送邮件
27             Sendmail send = new Sendmail(user);
28             //启动线程,线程启动之后就会执行run方法来发送邮件
29             send.start();
30             
31             //注册用户
32             //new UserService().registerUser(user);
33             request.setAttribute("message", "恭喜您,注册成功,我们已经发了一封带了注册信息的电子邮件,请查收,如果没有收到,可能是网络原因,过一会儿就收到了!!");
34             request.getRequestDispatcher("/message.jsp").forward(request, response);
35         }catch (Exception e) {
36             e.printStackTrace();
37             request.setAttribute("message", "注册失败!!");
38             request.getRequestDispatcher("/message.jsp").forward(request, response);
39         }
40     }
41 
42     public void doPost(HttpServletRequest request, HttpServletResponse response)
43             throws ServletException, IOException {
44         doGet(request, response);
45     }
46 }
复制代码

  程序运行效果如下:

  JavaWeb应用中使用JavaMail发送邮件_第1张图片

  现在很多网站都有这样的功能,用户注册完成之后,网站根据我们注册时填写的邮箱给我们一封Email,然后点击Email中的超链接去激活我们的用户。这种功能就是这样实现的。

  在总结使用JavaMail发送邮件时发现,将邮件发送到sina或者sohu的邮箱时,不一定能够马上收取得到邮件,总是有延迟,有时甚至会延迟很长的时间,甚至会被当成垃圾邮件来处理掉,或者干脆就拒绝接收,有时候为了看到邮件发送成功的效果,要等半天,实属无奈啊。

 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 import me.gacl.domain.User;
 9 import me.gacl.service.UserService;
10 
11 public class RegisterServlet extends HttpServlet {
12 
13     public void doGet(HttpServletRequest request, HttpServletResponse response)
14             throws ServletException, IOException {
15         try{
16             String username = request.getParameter("username");
17             String password = request.getParameter("password");
18             String email = request.getParameter("email");
19             User user = new User();
20             user.setEmail(email);
21             user.setPassword(password);
22             user.setUsername(username);
23             
24             System.out.println("把用户信息注册到数据库中");
25             //用户注册成功之后就使用用户注册时的邮箱给用户发送一封Email
26             //发送邮件是一件非常耗时的事情,因此这里开辟了另一个线程来专门发送邮件
27             Sendmail send = new Sendmail(user);
28             //启动线程,线程启动之后就会执行run方法来发送邮件
29             send.start();
30             
31             //注册用户
32             //new UserService().registerUser(user);
33             request.setAttribute("message", "恭喜您,注册成功,我们已经发了一封带了注册信息的电子邮件,请查收,如果没有收到,可能是网络原因,过一会儿就收到了!!");
34             request.getRequestDispatcher("/message.jsp").forward(request, response);
35         }catch (Exception e) {
36             e.printStackTrace();
37             request.setAttribute("message", "注册失败!!");
38             request.getRequestDispatcher("/message.jsp").forward(request, response);
39         }
40     }
41 
42     public void doPost(HttpServletRequest request, HttpServletResponse response)
43             throws ServletException, IOException {
44         doGet(request, response);
45     }
46 }
复制代码

  程序运行效果如下:

  JavaWeb应用中使用JavaMail发送邮件_第2张图片

  现在很多网站都有这样的功能,用户注册完成之后,网站根据我们注册时填写的邮箱给我们一封Email,然后点击Email中的超链接去激活我们的用户。这种功能就是这样实现的。

  在总结使用JavaMail发送邮件时发现,将邮件发送到sina或者sohu的邮箱时,不一定能够马上收取得到邮件,总是有延迟,有时甚至会延迟很长的时间,甚至会被当成垃圾邮件来处理掉,或者干脆就拒绝接收,有时候为了看到邮件发送成功的效果,要等半天,实属无奈啊。

你可能感兴趣的:(JavaWeb应用中使用JavaMail发送邮件)