`

JavaMail应用实例说明:简单(HTML)邮件的发送 javaMail基础教程下载

阅读更多

说明:1。本实例需要用到javamail-1.4.3和jaf-1_0_2-upd2。附件中有它们的下载,关于它们的介绍可以去google一下。

         2。使用javaMail需要一个邮件服务器,我使用的是cmail,它很小,试用版的可以用于学习,按装之前请确保你装了IIS服务,因为它自带有一个.NET写的邮件服务。在下面附件中可以下载。

一:简单的邮件发送

<form action="SendText" method="post">
  		<table border="0" align="center" width="80%">
  			<tr>
  				<td align="right">From:</td>
  				<td>
  					<input type="text" name="from">
  				</td>
  			</tr>
  			<tr>
  				<td align="right">To:</td>
  				<td>
  					<input type="text" name="to">
  				</td>
  			</tr>
  			<tr>
  				<td align="right">Subject:</td>
  				<td>
  					<input type="text" name="subject">
  				</td>
  			</tr>
  			<tr>
  				<td align="right">Context:</td>
  				<td>
  					<textarea rows="5" cols="30" name="context"></textarea>
  				</td>
  			</tr>
  			<tr>
  				<td align="center" colspan="2">
  					<input type="submit" value="发送">
  				</td>
  			</tr>
  		</table>
  	</form>

Servlet如下:

/**
 * 使用javaMail发送简单的邮件
 * 
 * @author 张明学
 * 
 */
public class SendText extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 7107039219761248959L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("GBK");
		String from = request.getParameter("from");
		String to = request.getParameter("to");
		String subject = request.getParameter("subject");
		String context = request.getParameter("context");
		// 发送的邮件服务器的地址
		String mailServer = "PC200904071715";//按装cmail就是你的机器名
		Properties prop = System.getProperties();
		// 设置邮件的传输协议
		prop.put("mail.transport.protocal", "smtp");
		prop.put("mail.smtp.host", mailServer);
		prop.put("mail.smtp.port", "25");
		// 是否通过验证;一般为true,false不能通过验证   
		prop.put("mail.smtp.auth", "false");
		// 建立邮件发送的连接
		// Session 类定义了一个基本邮件会话(session)。所有其它类都是经由这个session 才得以生效。
		// Session 对象用 java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其它信息。
		// Session类的构造器是私有的(private)。您可以得到单个缺省 session,它能用 getDefaultInstance() 方法被共享:
		// 或者,您还可以用 getInstance()  创建一个独立的 session:
		Session jmailSession = Session.getDefaultInstance(prop,
				new Authenticator() {
					@Override
					protected PasswordAuthentication getPasswordAuthentication() {
						//需要邮件服务器的管理员账号与密码
						return new PasswordAuthentication("admin", "");
					}
				});
		// 创建要发送的消息,这由 Message  类来完成。因为 Message 是个抽象类,必需用一个子类,多数情况下为 javax.mail.internet.MimeMessage。
		Message jmailMessage = new MimeMessage(jmailSession);
		// 设置相关的邮件属性
		try {
			// Address 确定信件地址,Address是个抽象类,用的是javax.mail.internet.InternetAddress
			// 若希望名字紧挨着电子邮件显示,也可以把它传递给构造器:jmailMessage.setFrom(new InternetAddress(from,"admin"));
			jmailMessage.setFrom(new InternetAddress(from));
			/**
			 * javax.mail.Message.RecipientType.TO:一对一的发送
			 * javax.mail.Message.RecipientType.CC:抄送
			 * javax.mail.Message.RecipientType.BCC:秘密抄送
			 */
			jmailMessage.setRecipient(javax.mail.Message.RecipientType.TO,new InternetAddress(to));
			// 用setSubject()方法设置 subject(主题)
			jmailMessage.setSubject(subject);
			jmailMessage.setSentDate(new Date());
			// 使用 MimeMessage,而且消息是纯文本格式,您就可以用 setText() 方法,它只需要代表实际内容的参数,( MIME 类型缺省为 text/plain)
			jmailMessage.setText(context);
			// 邮件发送
			// 消息发送的最后一部分是使用Transport类。这个类用协议指定的语言发送消息(通常是 SMTP)。它是抽象类,仅调用静态send()方法
			Transport.send(jmailMessage);
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		// request.getRequestDispatcher("ok.jsp").forward(request, response);
		response.sendRedirect("ok.jsp");
	}
}

 HTML格式的邮件发送:

<form action="SendHtml" method="post">
  		<table border="0" align="center" width="80%">
  			<tr>
  				<td align="right">From:</td>
  				<td>
  					<input type="text" name="from">
  				</td>
  			</tr>
  			<tr>
  				<td align="right">To:</td>
  				<td>
  					<input type="text" name="to">
  				</td>
  			</tr>
  			<tr>
  				<td align="right">Subject:</td>
  				<td>
  					<input type="text" name="subject">
  				</td>
  			</tr>
  			<tr>
  				<td align="right">Context:</td>
  				<td>
  					<textarea rows="5" cols="30" name="context"></textarea>
  				</td>
  			</tr>
  			<tr>
  				<td align="right">格式:</td>
  				<td>
  					<select name="type">
  						<option value="text/plain">文本格式</option>
  						<option value="text/html">HTML格式</option>
  					</select>
  				</td>
  			</tr>
  			<tr>
  				<td align="center" colspan="2">
  					<input type="submit" value="发送">
  				</td>
  			</tr>
  		</table>
  	</form>

 Servlet如下:

public class SendHtml extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8794915632056125770L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("GBK");
		String from = request.getParameter("from");// 发件人
		String to = request.getParameter("to");// 收件人
		String subject = request.getParameter("subject");// 主题
		String context = request.getParameter("context");// 内容
		String type = request.getParameter("type");

		// 邮件服务器的地址
		String mailServer = "PC200904071715";
		// 设置邮件的传输协议信息
		Properties transProp = System.getProperties();
		// 邮件服务器地址
		transProp.put("mail.smtp.host", mailServer);
		// 邮件传输协议中的接收协议:smtp
		transProp.put("mail.transport.protocol", "smtp");
		// 是否通过验证
		transProp.put("mail.smtp.auth", "true");
		// 服务器端口
		transProp.put("mail.smtp.port", "25");// 默认端口25
		// 建立邮件发送的连接
		javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(
				transProp, new Authenticator() {
					@Override
					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication("admin", "");
					}

				});
		// 邮件信息载体
		javax.mail.Message mailMessage = new javax.mail.internet.MimeMessage(mailSession);
		try {
			// 设置发件人
			mailMessage.setFrom(new InternetAddress(from));
			// 设置收件人
			mailMessage.setRecipient(RecipientType.TO, new InternetAddress(to));
			// 多个收件人设置
			// InternetAddress[] addresss = new InternetAddress[]{new InternetAddress(to)};
			// mailMessage.setRecipients(RecipientType.TO, addresss);
			// 设置主题
			mailMessage.setSubject(subject);
			// 发送时间
			mailMessage.setSentDate(new Date());
			
			Multipart mp = new MimeMultipart(); 
			MimeBodyPart mbp = new MimeBodyPart();
			mbp.setContent(context, type+";charset=GB2312");
			mp.addBodyPart(mbp);
			
			mailMessage.setContent(mp);
			javax.mail.Transport.send(mailMessage);
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
		response.sendRedirect("ok.jsp");
	}

}
  • cmailsetup.rar (1.7 MB)
  • 描述: cmail邮件服务器按装文件
  • 下载次数: 48
  • JavaMail.rar (539.5 KB)
  • 描述: 我的实例
  • 下载次数: 52
3
1
分享到:
评论

相关推荐

    javaMail 发邮件

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中发送和接收电子邮件。它提供了丰富的API,使得开发者可以方便地处理SMTP、POP3和IMAP等邮件协议。在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件...

    JavaMail使用实例及所需jar包

    实例部分提供了两个实际的应用程序,这些应用程序演示了如何使用JavaMail API发送邮件。每个实例都有一个测试用的main方法,这使得用户可以直接运行代码并观察结果。这对于学习和调试非常有用。通过阅读和运行这些...

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...

    JavaMail基础教程(API)

    这个基础教程将引导你逐步了解如何使用JavaMail API进行邮件操作。 1. **JavaMail简介** JavaMail API是Java平台上处理邮件的核心库,它包含了多个接口和类,如`Session`, `Message`, `Multipart`和`Address`等,...

    javaMail发送邮件

    JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个库提供了丰富的 API,使得开发者可以方便地处理 SMTP、POP3 和 IMAP 协议,从而实现电子邮件的全面功能。在JavaMail中,我们...

    『JAVA基础』使用JavaMail发邮件的实例

    本教程将通过一个实例详细介绍如何使用JavaMail API发送邮件。首先,我们需要了解JavaMail API的基本概念和它的核心组件。 JavaMail API是一个用于处理邮件的开源Java库,它允许开发者在Java应用中创建、发送、接收...

    基于Javamail的邮件收发系统(系统+文档+开题报告+任务书+外文翻译+文献综述+答辩PPT).zip

    一、Javamail基础 JavaMail是Java平台上的一个开源库,它提供了在Java应用程序中发送和接收电子邮件的能力。通过JavaMail API,开发者可以方便地与SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息...

    javamail邮件系统开发

    要使用JavaMail发送邮件,你需要配置一个`Session`对象,它是所有邮件操作的基础。这个对象包含了连接到邮件服务器所需的属性,如SMTP服务器地址、端口号、用户名和密码。你可以通过`Properties`类来设置这些属性,...

    简单的JavaMail

    总之,“简单的JavaMail”项目提供了一个基础的教程,帮助开发者了解如何在Java应用程序中利用JavaMail API发送包含文本和图像的群发邮件。通过阅读和理解提供的源代码,你可以深入了解这个过程,并扩展到更复杂的...

    JavaMail接收邮件

    JavaMail是一种广泛使用的Java库,用于处理电子邮件的发送和接收。在Java应用程序中实现邮件接收功能,JavaMail是必不可少的工具。本教程将详细介绍如何利用JavaMail API来接收邮件。 首先,我们需要理解JavaMail的...

    简单javamail的实现(HelloWorld)

    这个“简单javamail的实现(HelloWorld)”的教程将引导我们通过创建一个基础的JavaMail应用,这通常被称为“HelloWorld”示例,因为它标志着我们对JavaMail API的初步理解和使用。 JavaMail API 提供了广泛的类和...

    fundamentals of the javamail api

    - 使用JavaMail API发送和读取邮件。 - 处理发送和接收附件。 - 处理HTML格式的消息。 - 使用搜索术语来查找邮件。 ##### 先决条件 本课程包含了如何下载和安装JavaMail API的指导。此外,你需要一个开发环境,如...

    JavaMail+jaf+教程

    3. 创建Message:使用Session对象创建一个Message实例,这代表你要发送的邮件。你可以设置发件人、收件人、主题和邮件内容。 4. 添加附件:通过MimeBodyPart和Multipart类,你可以添加多种类型的附件。MimeBodyPart...

    javaMail API基础

    JavaMail API是Java编程语言中用于处理邮件的接口和类库,它允许开发人员在Java应用程序中发送、接收和管理电子邮件。本教程将深入探讨JavaMail API的基础知识,包括其核心概念、组件以及如何实际应用。 JavaMail ...

    java实现发送邮件功能源码+jar

    本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...

    JavaMail

    这些类构成了JavaMail API的基础架构,了解它们的功能和使用方法对于开发邮件应用至关重要。例如,Session类用于管理邮件会话,Store类代表邮件服务器的连接,Folder类封装了邮件文件夹的概念,而Message类则是表示...

    Java邮件开发(4)_邮件开发中问题汇总

    这个教程“Java邮件开发(4)_邮件开发中问题汇总”聚焦于在实际应用中遇到的问题及其解决方案。以下是一些关键的知识点: 1. **JavaMail API**: JavaMail API是Java平台上的一个标准接口,它提供了一组API来处理...

    在JSP中使用JavaMail

    **在JSP中使用JavaMail** 是一个常见的Web开发任务,尤其对于那些需要发送自动通知、确认邮件或者用户注册验证的Web应用来说。JavaMail API是Java平台上的一个开源库,它提供了处理邮件协议(如SMTP、POP3、IMAP)的...

Global site tag (gtag.js) - Google Analytics