以下图:html
输入要发送的邮件地址以及发送的邮件内容,点击按钮,发送邮件,完成便可跳到以下页面:前端
<body> <form action="${pageContext.request.contextPath}/sendEmail" method="post"> 请输入要发送的邮件地址:<input type="text" name="emailAddress"><br /> 请输入要发送的邮件内容:<input type="text" name="emailMsg"><br /> <input type="submit" value="点击发送邮件" /> </form> </body>
package com.zrx.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.zrx.util.SendEmailUtil; public class SendEmailServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 前端form表单post请求--防止请求提交乱码. request.setCharacterEncoding("utf-8"); // 获取前端传入的参数 String emailAddress = request.getParameter("emailAddress"); String emailMsg = request.getParameter("emailMsg"); try { // 邮件发送处理 SendEmailUtil.sendMail(emailAddress, emailMsg); // 将发送信息保存到session中 request.getSession().setAttribute("send_msg", "邮件发送成功!"); // 页面跳转到发送结果页面 request.getRequestDispatcher("/send_result.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); request.getSession().setAttribute("send_msg", "邮件发送失败!"); request.getRequestDispatcher("/send_result.jsp").forward(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package com.zrx.util; import java.util.Properties; import javax.mail.Address; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class SendEmailUtil { public static boolean sendMail(String emailAddress, String emailMsg) { // 谁发送 String from = ""; // 发给谁 String to = emailAddress; // 发送者的用户名和密码(邮箱登陆用) final String username = ""; // 此处填写发送的邮箱名 final String password = ""; // 此处填写登陆的邮箱密码 // 定义properties对象,设置环境信息 Properties properties = new Properties(); /* * mail.smtp.host :指定链接的邮件服务器的主机名。如:163邮箱就填写smtp.163.com * 若在本地测试的话,须要在本地安装smtp服务器 */ properties.setProperty("mail.smtp.host", "smtp.163.com"); // mail.smtp.auth:指定客户端是否要向邮件服务器提交验证 properties.setProperty("mail.smtp.auth", "true"); /* * mail.transport.protocol:指定邮件发送协议:smtp。smtp:发邮件;pop3:收邮件 * mail.store.protocol:指定邮件接收协议 */ properties.setProperty("mail.transport.protocol", "smtp"); // 获取session对象 Session session = Session.getInstance(properties); // 当设置为true,JavaMail AP就会将其运行过程和邮件服务器的交互命令信息输出到console中,用于JavaMail的调试 session.setDebug(true); try { // 建立邮件对象 MimeMessage message = new MimeMessage(session); // 设置邮件发送方 message.setFrom(new InternetAddress(from)); // 设置邮件发送的主题<邮件标题> message.setSubject("邮件发送设置"); // 设置邮件发送的内容 message.setContent(emailMsg,"text/html;charset=utf-8"); Transport transport=session.getTransport(); // 链接邮件服务器,“”中填写邮件服务器主机名 transport.connect("",25, username, password); transport.sendMessage(message,new Address[]{new InternetAddress(to)}); transport.close(); return true; } catch (MessagingException e) { e.printStackTrace(); return false; } } }
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- 配置servlet --> <servlet> <servlet-name>SendEmailServlet</servlet-name> <servlet-class>com.zrx.servlet.SendEmailServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SendEmailServlet</servlet-name> <url-pattern>/sendEmail</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>