这是一个Servlet应用。。
首先是web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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_2_5.xsd"> <servlet> <servlet-name>SendMailServlet</servlet-name> <servlet-class>com.jadyer.servlet.SendMailServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SendMailServlet</servlet-name> <url-pattern>/servlet/sendMail</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>sendMail.jsp</welcome-file> </welcome-file-list> </web-app>
然后是用于输入所发送的邮件内容的sendMail.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"%> <center> <h2><font color="blue">邮件发送程序V1.1</font></h2> <form action="<%=request.getContextPath()%>/servlet/sendMail" method="POST"> <table border="22"> <tr> <td>收件人</td> <td><input type="text" name="to" size="30"></td> </tr> <tr> <td>发件人</td> <td><input type="text" name="from" size="30"></td> </tr> <tr> <td>主题</td> <td><input type="text" name="subject" size="30"></td> </tr> <tr> <td valign="top">正文</td> <td><textarea cols="50" rows="15" name="body"></textarea></td> </tr> <tr> <td> </td> <td><input type="submit" value="提交"></td> </tr> </table> </form> </center>
接着是用于显示邮件发送结果的sendResult.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"%> <font color="red">${requestScope['sendmail.message']}</font>
最后是该邮件发送程序的核心Servlet
package com.jadyer.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail; /** * 邮件发送程序V1.1 * @see ----------------------------------------------- * @see 本程序的运行环境为JavaSE6.0和JavaEE5.0 * @see ----------------------------------------------- * @see 这里使用了apache-commons-email组件和mail.jar包 * @see 编写的是一个基于Web的邮件发送程序 * @see 本程序的运行,不需安装自己的邮件服务器 * @see ----------------------------------------------- * */ public class SendMailServlet extends HttpServlet { private static final long serialVersionUID = 3707178839517920624L; public void doGst(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //生成SimpleEmail类型的对象email //SimpleEmail是commons-eamil组件中的类,封装的是发送不带附件的邮件的行为 SimpleEmail email = new SimpleEmail(); //设置smtp服务器的名称。这里设置为网易Yeah的免费邮件服务器的地址 email.setHostName("smtp.yeah.net"); //设置使用这个服务器发送邮件所需要的用户名与密码 //该用户必须是该免费邮件服务器上的合法用户 //说白了,这里使用的就是我的邮箱[email protected] email.setAuthentication("jadyer", "mypassword"); try { //设置邮件内容的文件编码方法 email.setCharset("UTF-8"); //设置收件人 email.addTo(request.getParameter("to")); //设置发件人 email.setFrom(request.getParameter("from")); //设置邮件主题 email.setSubject(request.getParameter("subject")); //设置邮件正文 email.setMsg(request.getParameter("body")); //调用email对象的send()方法完成邮件的发送 email.send(); //注意,测试时,不要发送垃圾邮件,因为可能会被对方的邮件服务器退回 request.setAttribute("sendmail.message", "恭喜您!邮件发送成功!"); } catch (EmailException e) { e.printStackTrace(); request.setAttribute("sendmail.message", "很遗憾!邮件发送失败!"); } request.getRequestDispatcher("/sendResult.jsp").forward(request, response); } }
测试时:在sendMail.jsp页面中录入您所要发送的邮件的具体信息
收件人:填写对方的邮件地址
发件人:此处应填写[email protected],也就是我的邮箱地址。这是由SendMailServlet.java的第44行限定的
主题和正文:要尽量填写一些意义的文本,否则该封邮件容易被对方的邮件服务器作为垃圾邮件处理,导致发送失败