java web--java mail编程

  在开发项目或软件产品功能的过程中,经常遇到需要将数据、提醒、公告等通过邮件的方式发送给客户或管理人员,也就是通过邮件的发送来执行业务的规则。

  java mail用来建立邮件和消息应用程序。它可以方便的执行一些常用的邮件传输,支持PO3,IMAP,SMTP,既可以作为JavaSE平台的可选包,也可以在JavaEE平台中使用。

目录

1.java mail环境的构建

2.发送邮件

  ①发送简单的邮件

  ②发送带附件的邮件

  ③发送HTML形式的邮件

  ④使用java mail实现邮件的发送--设计一个简单的邮件发送系统


1.java mail环境的构建

  直接使用java mail实现邮件的发送比较复杂,这里采用Commons-Email实现,Commons-Email是Apache提供的一个开源的API,是对java mail的封装,使用它时用到的Jar包包括:mail.jar,additionnal.jar,activation.jar和commons-emails-1.2.jar,主要包括四个类。

SimpleEmail 发送简单的email,不能添加附件
MultiPartEmail 发送文本邮件,可以添加多个附件
HtmlEmail 发送HTML格式的邮件,同时具有MultiPartEmail类的所有功能
EmailAttchment 附件类,可以添加本地资源,也可以指定网络资源,在发送时将网络资源下载发送

2.发送邮件

  ①发送简单的邮件

SimpleEmail email=new SimpleEmail();
email.setHostName("smtp.163.com");  //设置邮箱服务器
email.setAuthentication("用户名","密码")
email.addTo("***@**.com");  //收件人
email.setFrom("***@**.com");//发件人
email.setSubject("Subject");//邮件主题
email.setMsg("你好");//邮件内容
email.send();      //发送邮件

  ②发送带附件的邮件

EmailAttachment attachment=NEW EmailAttachment();
attachment.setPath("附件路径");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
MultiPartEmail email=new MultiPartEmail();
email.setHostName("smtp.163.com");  //设置邮箱服务器
email.setAuthentication("用户名","密码")
email.addTo("***@**.com");  //收件人
email.setFrom("***@**.com");//发件人
email.setSubject("Subject");//邮件主题
email.setMsg("你好");//邮件内容
email.attach(attachment);
email.send();      //发送邮件

  ③发送HTML形式的邮件

HtmlEmail email=new HtmlEmail();
email.setHostName("smtp.163.com");  //设置邮箱服务器
email.setAuthentication("用户名","密码")
email.addTo("***@**.com");  //收件人
email.setFrom("***@**.com");//发件人
email.setSubject("Subject");//邮件主题
email.setMsg("<font color='red'>123</font>");//邮件内容
email.send();      //发送邮件

  ④使用java mail实现邮件的发送--设计一个简单的邮件发送系统

    mail.jsp--jsp文件, 完成信息的获取与传递

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>发送文本格式的邮件</title>
</head>
<body>
<h1 align="center">发送文本格式的邮件</h1>
<form action="sendmail" method="post" name="form1">
<table width="48%" border="1" align="center" cellspacing="1">
<tr><td width="20%" height="30">收件人地址:</td>
<td width="80%" height="30"><input name="to" type="text" size="40"></td></tr>
<tr><td height="30">标题:</td>
<td height="30"><input name="title" type="text" size="40"></td></tr>
<tr><td height="30">邮件内容:</td>
<td height="30"><textarea name="content" cols="60" rows="40" id="content"></textarea></td></tr>
<tr align="center"><td colspan="2" height="40">
<input type="submit" value="发送">&nbsp;&nbsp;
<input type="reset" value="重输">
</td></tr>
</table>
</form>
</body>
</html>

      sendmail.java--servlet类,完成工程的操作

package bean;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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;

/**
 * Servlet implementation class sendmail
 */
@WebServlet("/sendmail")
public class sendmail extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public sendmail() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		request.setCharacterEncoding("UTF-8");
		SimpleEmail email=new SimpleEmail();
		email.setHostName("smtp.163.com");
		email.setAuthentication("用户名", "密码");//需要自己填写
		try {
			email.addTo(request.getParameter("to"));
			email.setFrom("用户邮箱");//需要自己填写
			email.setSubject(request.getParameter("title"));
			email.setMsg(request.getParameter("content"));
			email.send();
			out.println("邮件发送成功");
		} catch (EmailException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			out.println("邮件发送失败");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章