`

通过commons-email组件发送邮件

阅读更多

该案例包含三个文件,分别为上传文件页面sendMail.jsp,上传文件处理类SendMailServlet.java,显示结果页面sendResult.jsp。

<form id="form1" name="form1" method="post" action="<%=request.getContextPath()%>/servlet/sendMail">
  <table width="516" height="253" border="0" align="center">
    <tr>
      <td>收件人:</td>
      <td><label>
        <input type="text" name="to" id="to" />
      </label></td>
    </tr>
    <tr>
      <td>发件人:</td>
      <td><label>
        <input type="text" name="from" id="from" />
      </label></td>
    </tr>
    <tr>
      <td>主题:</td>
      <td><label>
        <input type="text" name="subject" id="subject" />
      </label></td>
    </tr>
    <tr>
      <td>内容:</td>
      <td><label>
        <textarea name="content" id="content" cols="45" rows="8"></textarea>
      </label></td>
    </tr>
    <tr>
      <td><label>
        <input type="submit" name="button" id="button" value="提交" />
      </label></td>
      <td><label>
        <input type="reset" name="button2" id="button2" value="重置" />
      </label></td>
    </tr>
  </table>
</form>

 

web.xml中添加servlet处理

<servlet>
    <servlet-name>sendMailServlet</servlet-name>
    <servlet-class>com.email.SendMailServlet</servlet-class>
 </servlet>

 <servlet-mapping>
    <servlet-name>sendMailServlet</servlet-name>
    <url-pattern>/servlet/sendMail</url-pattern>
 </servlet-mapping>

 在servlet类SendMailServlet.java中处理邮件发送

public class SendMailServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("doGet");
		//处理请求页面中文字符集
		request.setCharacterEncoding("gbk");
		response.setContentType("text/html; charset=gbk");
		//简单的邮件处理
		SimpleEmail email = new SimpleEmail();
		//设置邮件发送的服务器
		email.setHostName("smtp.163.com");
		//邮件发送验证用户名,密码
		email.setAuthentication("emailtest_001", "123456");
		//设置邮件接收字符集
		email.setCharset("gbk");
		try {
			//设置邮件信息,发送人,接受人,主题,内容等信息,信息内容从请求页面中得到
			email.setFrom(request.getParameter("from"));
			email.addTo(request.getParameter("to"));
			email.setSubject(request.getParameter("subject"));
			email.setMsg(request.getParameter("content"));
			//发送邮件
			email.send();
			request.setAttribute("sendmail.message", "邮件发送成功!");
		} catch (EmailException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			request.setAttribute("sendmail.message", "邮件发送不成功!");
		}
		//请求转发到结果页面
		request.getRequestDispatcher("/sendResult.jsp").forward(request,
				response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

 SimpleEmail类处理简单的邮件发送,必须经过网易服务器的验证,即必须通过

email.setHostName("smtp.163.com");

email.setAuthentication("emailtest_001", "123456");
设置验证信息。如要更改服务器信息只需更改服务器域名HostName,但是用户名,密码必须是该服务器下的注册的用户!!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics