Servlet 发送电子邮件
使用 Servlet 发送一封电子邮件是很简单的,但首先您必须在您的计算机上安装 JavaMail API 和 Java Activation Framework)JAF)。
- 您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。
- 您可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。
你也可以使用本站提供的下载链接:
- JavaMail mail.jar 1.4.5
- JAF(版本 1.1.1) activation.jar
下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。您需要把 mail.jar 和 activation.jar 文件添加到您的 CLASSPATH 中。
发送一封简单的电子邮件
下面的实例将从您的计算机上发送一封简单的电子邮件。这里假设您的本地主机已连接到互联网,并支持发送电子邮件。同时确保 Java Email API 包和 JAF 包的所有的 jar 文件在 CLASSPATH 中都是可用的。
// 文件名 SendEmail.java
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*; public class SendEmail extends HttpServlet{ public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// 收件人的电子邮件 ID
String to = "abcd@gmail.com"; // 发件人的电子邮件 ID
String from = "web@gmail.com"; // 假设您是从本地主机发送电子邮件
String host = "localhost"; // 获取系统的属性
Properties properties = System.getProperties(); // 设置邮件服务器
properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象
Session session = Session.getDefaultInstance(properties); // 设置响应内容类型
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter(); try{
// 创建一个默认的 MimeMessage 对象
MimeMessage message = new MimeMessage(session);
// 设置 From: header field of the header.
message.setFrom(new InternetAddress(from));
// 设置 To: header field of the header.
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// 设置 Subject: header field
message.setSubject("This is the Subject Line!");
// 现在设置实际消息
message.setText("This is actual message");
// 发送消息
Transport.send(message);
String title = "发送电子邮件";
String res = "成功发送消息...";
String docType = "<!DOCTYPE html> \n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n" +
"<p align=\"center\">" + res + "</p>\n" +
"</body></html>");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
现在让我们来编译上面的 Servlet,并在 web.xml 文件中创建以下条目:
....
<servlet>
<servlet-name>SendEmail</servlet-name>
<servlet-class>SendEmail</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>SendEmail</servlet-name>
<url-pattern>/SendEmail</url-pattern>
</servlet-mapping>
....
现在通过访问 URL http://localhost:8080/SendEmail 来调用这个 Servlet。这将会发送一封电子邮件到给定的电子邮件 ID abcd@gmail.com,并将显示下面所示的响应:
| 发送电子邮件成功发送消息... | 
如果您想要发送一封电子邮件给多个收件人,那么请使用下面的方法来指定多个电子邮件 ID:
void addRecipients(Message.RecipientType type,
Address[] addresses)
throws MessagingException
下面是对参数的描述:
- type:这将被设置为 TO、CC 或 BCC。在这里,CC 代表抄送,BCC 代表密件抄送。例如 Message.RecipientType.TO。
- addresses:这是电子邮件 ID 的数组。当指定电子邮件 ID 时,您需要使用 InternetAddress() 方法。
Servlet 发送电子邮件的更多相关文章
- JAVA实现发送电子邮件
		相信大家对于网站也好,手机app也好,用户注册时,需要进行邮箱验证的功能特别好奇吧,本篇我将带领大家一起实现一下这个简单而又神奇的小功能,让我们的应用也可以加入这些神奇的元素.废话不多说,下面开始我们 ... 
- WordPress ”无法发送电子邮件,可能原因:您的主机禁用了mail()函数“的解决办法
		WordPress网站中出现 "无法发送电子邮件,可能原因:您的主机禁用了mail()函数"的情况一般都是因为所在主机环境不支持在线邮件收发功能导致,如果不支持的话,那么像类似 N ... 
- javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)
		引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ... 
- javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)
		引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ... 
- 在ASP.NET中发送电子邮件的实例教程
		首先.导入命名空间: 代码如下 复制代码 using System.Net.Mail; 定义发送电子邮件的方法[网上很多不同的,可以对比着看一下,WinForm的也适用]: 代码如下 复制代码 /// ... 
- ASP.NET 发送电子邮件简介
		1.补充知识 (1)POP3和SMTP服务器是什么? 简单点来说:POP3 用于接收电子邮件 ,SMTP 用于发送电子邮件. (1)POP3具体指什么? POP3(Post Office Protoc ... 
- 使用php发送电子邮件(phpmailer)
		在项目开发过程中,经常会用到通过程序发送电子邮件,例如:注册用户通过邮件激活,通过邮件找回密码,发送报表等.这里介绍几种通过PHP发送电子邮件的 方式(1)通过mail()函数发送邮件(2)使用fso ... 
- 利用Excel批量高速发送电子邮件
		利用Excel批量高速发送电子邮件,分两步: 1. 准备待发送的数据: a.) 打开Excel,新建Book1.xlsx b.) 填入以下的内容, 第一列:接收人,第二列:邮件标题,第三列:正文,第四 ... 
- Spring发送电子邮件
		Spring提供了发送电子邮件的功能,它向用户屏蔽了底层邮件系统的一些细节,同时代表客户端负责底层的资源处理. Spring的邮件服务支持主要是通过JavaMailSender这个接口实现的: p ... 
随机推荐
- devexpress 经验笔记
			1.去除 GridView 头上的 "Drag a column header here to group by that column" --> 点击 Run Desig ... 
- T-sql脚本规范
			一.创建表 IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'表名') AND type in (N'U') ... 
- Android Studio Emulator 提示 “/dev/kvm is not found” 解决办法
			重新安装HAXM即可解决 1.确定已经安装HAXM SDK Manager -> Extras -> Intel x86 Emulator Accelerator (HAXM instal ... 
- nodeJs建立简单的服务器
			var http = require('http');//http依赖 var hostname = '127.0.0.1';//本地 var port = 3000;//端口 var server ... 
- websocket 和 socket.io 之间的区别
			socket.io封装了websocket,同时包含了其它的连接方式,比如Ajax.原因在于不是所有的浏览器都支持websocket,通过socket.io的封装,你不用关心里面用了什么连接方式.你在 ... 
- php中一些函数的用法
			addslashes() 定义和用法 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串. 预定义字符是: 单引号(') 双引号(") 反斜杠(\) NULL 提示:该函数 ... 
- Appstore 提交Ipad 和Iphone版
- 时间见证着—eternal life
			上帝并不是这么公平的爱每个人,祂会多爱那些在困难.痛苦.悔恨中的人一点点.因为在那个当下,他们比一般人更需要知道上帝对他们的爱. 开通空间:http://imgcache.qq.com/qzone ... 
- Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口
			背景 当前做的APP有菜单栏,菜单栏有一项需要对下位机相关参数进行设置,则必须弹出一个窗口来实现设置操作.本篇即对点击菜单栏生成新的窗口,在新的窗口内完成相应计划后结束新窗口并返回原窗口的方法进行简述 ... 
- Java基础知识介绍
			数组的定义及初始化方式 数组对象创建没有() 一维数组 静态初始化: String[] books = {"Thinking in Java","Effective Ja ... 
