JSP实现邮件发送机制

最近写项目用到JSP发送邮件的功能,找了一下资料,其实也挺简单。首先,需要两个jar包库,

JavaMail:下载地址:http://www.oracle.com/technetwork/java/index-138643.html

JavaBeans Activation Framework(JAF):下载地址:http://www.oracle.com/technetwork/java/javase/jaf-136260.html

下载解压后,将会看到一系列jar包。将mail.jar包和activation.jar包加入CLASSPATH变量中,或者直接将解压后的所有jar包拷贝到

tomcat的lib文件夹下,刷新eclipse,重启tomcat即可,下面是源代码:

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<%@ page import="java.io.*,java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*"%>
<%
	class MyAuthenticator extends javax.mail.Authenticator 
	{
		private String strUser;
		private String strPwd;

		public MyAuthenticator(String user, String password) 
		{
			this.strUser = user;
			this.strPwd = password;
		}

		protected PasswordAuthentication getPasswordAuthentication() 
		{
			return new PasswordAuthentication(strUser, strPwd);
		}
	}

	String result; //邮件发送的结果

	String to = "2********5@qq.com"; // 收件人的电子邮件
	String from = "1*******6@163.com"; // 发件人的电子邮件
	String host = "smtp.163.com"; // 发送电子邮件的主机,这里利用163邮箱做中介,在邮箱设置中可以设置smtp,找到SMTP的相关主机名

	Properties properties = System.getProperties(); // 获取系统属性对象
	properties.setProperty("mail.smtp.host", host); // 设置邮件服务器
	// Session mailSession = Session.getDefaultInstance(properties);   // 获取默认的Session对象。 
	properties.put("mail.smtp.auth", "true");
	MyAuthenticator authentic = new MyAuthenticator("你所做主机的163邮箱的账号","账号密码");
	Session mailSession = Session.getDefaultInstance(properties,authentic);

	try {
		MimeMessage message = new MimeMessage(mailSession); // 创建一个默认的MimeMessage对象。
		message.setFrom(new InternetAddress(from)); // 设置 From: 头部的header字段
		message.addRecipient(Message.RecipientType.TO,
				new InternetAddress(to)); // 设置 To: 头部的header字段
		message.setSubject("This is the Subject Line!"); // 设置 Subject: header字段
		message.setText("This is actual message"); // 现在设置的实际消息

		Transport.send(message); // 发送消息
		result = "发送邮件成功....";
	} catch (MessagingException mex) {
		mex.printStackTrace();
		result = "Error: unable to send message....";
	}
%>
<html>
<head>
<title>发送邮件</title>
</head>
<body>
	<center>
		<h1>发送邮件</h1>
	</center>
	<p align="center">
		<%
			out.println("Result: " + result + "\n");
		%>
	</p>
</body>
</html>
上面163的SMTP具体设置见:http://blog.csdn.net/u014267402/article/details/40684833  中的第一步。


本人经验,仅供参考!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要在JSP页面中编写一个表单,例如: ``` <form method="post" action="send.jsp"> <input type="text" name="name" placeholder="姓名"> <input type="email" name="email" placeholder="邮箱"> <textarea name="message" placeholder="留言"></textarea> <button type="submit">提交</button> </form> ``` 其中,form的method为post,action为send.jsp,表示提交表单数据到send.jsp页面进行处理。 在send.jsp页面中,可以通过request.getParameter()方法获取表单中提交的数据,例如: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String name = request.getParameter("name"); String email = request.getParameter("email"); String message = request.getParameter("message"); // 这里可以进行业务逻辑处理,例如将数据保存到数据库中 // 发送成功后弹出提示框 out.println("<script>alert('发送成功!');location.href='index.jsp';</script>"); %> ``` 在处理表单数据后,可以通过out.println()方法输出JavaScript代码,例如弹出发送成功的提示框,并跳转回首页。 如果发送失败,可以通过类似的方式弹出失败提示框,例如: ``` out.println("<script>alert('发送失败,请重试!');history.back();</script>"); ``` 以上代码实现JSP页面提交表单数据,并在处理后弹出发送成功或失败的提示框。需要注意的是,在实际应用中需要进行数据验证和安全防范,以避免恶意提交和数据泄露等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值