使用jsp发送email
虽然使用JSP实现邮件发送功能很简单,但是需要有JavaMail API,并且需要安装JavaBean Activation Framework。
- 您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。
- 您可以从 Java 网站下载最新版本的 JAF。
下载并解压这些文件,在根目录下,您将会看到一系列jar包。将mail.jar包和activation.jar包加入CLASSPATH变量中。
发送一封简单的邮件
本实例演示从qq邮箱向网易邮箱发送电子邮件
在j2EE中建立email.jsp文件
源代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<%
// 以下变量为用户根据自己的情况设置
String smtphost = "smtp.qq.com"; // 发送邮件服务器
String user = "xxxx@qq.com"; // 邮件服务器登录用户名
String password = "xxxxxxxxx"; // 邮件服务器登录密码
String from = "xxxx@qq.com"; // 发送人邮件地址
String to = "xxxx@163.com"; // 接受人邮件地址
String subject = "JavaMail 电子邮件发送系统测试"; // 邮件标题
String body = "JavaMail 电子邮件发送系统"; // 邮件内容
// 以下为发送程序,用户无需改动
try {
//初始化Properties类对象
Properties props = new Properties();
//设置mail.smtp.host属性
props.put("mail.smtp.host", smtphost);
//设置使用验证
props.put("mail.smtp.auth","true");
// 获取非共享的session对象
Session ssn= Session.getInstance(props,null);
//创建一个默认的MimeMessage对象。
MimeMessage message = new MimeMessage(ssn);
//创建InternetAddress对象
InternetAddress fromAddress = new InternetAddress(from);
//设置From: 头部的header字段
message.setFrom(fromAddress);
//创建InternetAddress对象
InternetAddress toAddress = new InternetAddress(to);
//设置 To: 头部的header字段
message.addRecipient(Message.RecipientType.TO, toAddress);
//设置 Subject: header字段
message.setSubject(subject);
// 现在设置的实际消息
message.setText(body);
//定义发送协议
Transport transport = ssn.getTransport("smtp");
//建立与服务器的链接
transport.connect(smtphost, user, password);
//发送邮件
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
//transport.send(message);
//关闭邮件传输
transport.close();
%>
<p>你的邮件已发送,请返回。</p>
<%
} catch(Exception m) //捕获异常
{
out.println(m.toString());
m.printStackTrace();
}
%>
</body>
</html>
运行结果:
收到的电子邮件: