JavaWeb 发送邮件

匿名 (未验证) 提交于 2019-12-02 21:52:03

 

我们可以使用第三方的邮箱服务器来发送邮件。

 

常用的邮件传输协议有2种:POP3/SMTP、IMAP/SMTP

POP和IMAP的区别:在邮箱客户端的操作,比如移动邮件、标记已读,如果使用POP,是不会同步到邮箱服务器上的;如果使用IMAP,这些操作会同步到邮箱服务器上。

 

 

示例   使用QQ邮箱服务器发送邮件

此处使用IMAP。可在 设置->账户 -> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 中配置。

@WebServlet("/sendMailServlet") public class SendMailServlet extends HttpServlet {     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         Properties properties = new Properties();         properties.put("mail.transport.protocol", "smtp");// 连接协议         properties.put("mail.smtp.host", "smtp.qq.com");// 邮箱服务器主机名         properties.put("mail.smtp.port", 465);// 端口号         properties.put("mail.smtp.auth", "true");         properties.put("mail.smtp.ssl.enable", "true");//是否使用ssl安全连接         properties.put("mail.debug", "true");//是否在控制台显示相关信息          //获取会话对象         Session session = Session.getInstance(properties);         //获取邮件对象         Message message = new MimeMessage(session);          try {             // 设置发件人邮箱地址             message.setFrom(new InternetAddress("xxx@qq.com"));             // 设置收件人邮箱地址             message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));              //有多个收件人时,写成数组形式             //InternetAddress[] receiverArr={new InternetAddress("xxx@qq.com"),new InternetAddress("xxx@qq.com"),new InternetAddress("xxx@qq.com")};             //message.setRecipients(Message.RecipientType.TO, receiverArr);              // 设置邮件标题             message.setSubject("邮件标题");             // 设置邮件内容             message.setText("邮件内容");              //获取邮差对象             Transport transport = session.getTransport();             //连接自己的邮箱账户,第二个参数是授权码             transport.connect("xxx@qq.com", "xxxxxxxxxxx");             //发送邮件             transport.sendMessage(message, message.getAllRecipients());             transport.close();         } catch (MessagingException e) {             e.printStackTrace();         }      }      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {         doPost(request,response);     } }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!