在JSP中应用Java Mail组件发送E-mail

                                                                              在JSP中应用Java Mail组件发送E-mail

1.创建mailsend.jsp并写入form表单

<form name="form1" method="post" action="deal.jsp" onSubmit="return checkform(form1)">
		<table>
			<tr><td>收件人:</td><td><input name="to" type="text" id="to" title="收件人" size="60"></td></tr>
			<tr><td>发件人:</td><td><input name="form" type="text" id="form" title="发件人" size="60"></td></tr>
			<tr><td>密码:</td><td><input name="password" type="password" id="password" title="发件人信箱密码" size="60"></td></tr>
			<tr><td>主题:</td><td><input name="subject" type="text" id="subject" title="邮件主题" size="60"></td></tr>
			<tr><td>内容:</td><td><textarea name="content" cols="59" rows="7" class="wenbenkuang" id="cotent" title="邮件内容" ></textarea></td></tr>
			<tr>
				<td><input name="Submit" type="submit" class="btn_grey" value="发送"></td>
				<td><input name="Submit2" type="reset" class="btn_grey" value="重置" ></td>
			</tr>
		</table>
</form>

2.利用js脚本防止输入空值

<script type="javascript">
		function checkform(myform){
			for(i = 0;i<myform.length;i++){
				if(myform.elements[i].value == ""){
					alert(myform.elements[i].title + "不能为空!");
					myform.elements[i].focus();
					return false;
				}
			}
		}
</script>

3.创建deal.jsp,并设置mail

<%
		try{
		
			request.setCharacterEncoding("utf-8");
			String from = request.getParameter("form");
			String to = request.getParameter("to");
			String subject = request.getParameter("subject");
			String messageText = request.getParameter("content");
			String password = request.getParameter("password");
			
			//建立邮箱会话
			Properties pro = new Properties();
			pro.put("username", from);   
            pro.put("password", password);
            pro.put("mail.transport.protocol", "smtp" );   
			pro.put("mail.smtp.host","smtp.163.com");
			pro.put("mail.smtp.port","25");
			pro.put("mail.smtp.auth", true);
			Session sess = Session.getDefaultInstance(pro);
			sess.setDebug(true);
			//新建一个消息对象
			MimeMessage message = new MimeMessage(sess);
			//设置发件人
			InternetAddress from_mail = new InternetAddress(from);
			message.setFrom(from_mail);
			//设置收件人
			InternetAddress to_mail =  new InternetAddress(to);
			message.setRecipient(Message.RecipientType.TO, to_mail);
			//设置主题
			message.setSubject(subject);
			//设置内容 文本用setText,HTML格式用setContent 
			message.setText(messageText);
			//设置发送时间
			message.setSentDate(new Date());
			//发送邮件
			message.saveChanges();						//保证报头域同会话内容保持一致
			
			Transport transport = sess.getTransport("smtp");
			transport.connect(pro.getProperty("mail.smtp.host"),pro.getProperty("username"),pro.getProperty("password"));
			transport.sendMessage(message,message.getAllRecipients());
			transport.close();
			out.println("<script language='javascript'>alert('邮件已发送!');window.location.href='Demo7_2_sendmail.jsp';</script>");
		}catch(Exception e){
			System.out.println("发送邮件产生的错误:" + e.getMessage());
			out.println("<script language='javascript'>alert('邮件发送失败!');window.loca-tion.href='Demo7_2_sendmail.jsp';</script>");
		}
	 %>	

注:我用了163的邮箱,这里需要在设置打开POP3/STMP

并且邮箱输入的密码为这里设置的

5.最后输入信息发送即可

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值