您的位置:首页 > 编程语言 > Java开发

Java Web JavaMail 邮件发送

2016-05-13 10:27 363 查看
Java Web JavaMail 邮件发送

  JavaMail是java技术当中用来发送邮件和接收邮件的API,JavaMail在java开发中是应用比较

广泛的,很多时候,我们都需要邮件发送和接收的功能。

  如我们开发的一个网络书店,当用户下了订单之后,我们都会把订单信息发送到用户的邮箱当中

这是就可以使用JavaMail技术了。

  下载JavaMail:

    http://java.sun.com/products/javamail/index.html

    得到:javamail1_4_4.zip          解压;mail.jar

测试代码一:

SendMail.java

代码:

package webbook.chapter16;

import javax.mail.*;

import javax.mail.internet.*;

import java.util.*;

public class SendMail {

 public static void main(String[] args) {

  try {

   Properties props = new Properties();

   Session session = Session.getInstance(props, null);

   // 在属性中设置发送邮件服务器地址与协议

   props.put("mail.host", "127.0.0.1");

   props.put("mail.transport.protocol", "smtp");

   Message message = new MimeMessage(session);

   // 设置发件人

   message.setFrom(new InternetAddress("hongtenzone@foxmail.com"));

   // 设置收件人, Message.RecipientType.CC是设置抄送者

   message.setRecipient(Message.RecipientType.TO, new InternetAddress("receiver@163.com"));

   message.setRecipient(Message.RecipientType.CC, new InternetAddress("web@foxmail.com"));

   message.setSubject("问候"); // 邮件主题

   message.setSentDate(new Date()); // 发送时间

   message.setText("这是一个测试!\n哈哈,你好!\n呵呵!"); //内容   

   Transport.send(message);

  } catch (MessagingException m) {

   m.printStackTrace();

  }

 }

}

说明;

这个程序有很大的限制:

  首先,在本机要装一个邮件服务器,也可以使用其他人的邮件服务器,比如你公司专有的邮件服务器。

还可以使用免费的邮件服务器,如:sina,搜狐,网易等,他们都有免费邮件服务,但是需要一些身份验证,

有一些麻烦……

  那有没有其他方法呢?

测试代码二:

下载Apache Commons Email组件

   下载地址:http://commons.apache.org/mail/

   下载:commons-email-1.2-bin.zip        得到:commons-email-1.2.jar

新建web project项目:

  Build Path: commons-email-1.2.jar           javaMail1.2.jar

sendMail.jsp

代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<html>

<head><title>Send E-Mail Form</title></head>

<style>* {font-family:"宋体" ; font-size: 14px }</style>

<body>

<p><font color="red">发送邮件的程序</font></p>

  <form action="<%=request.getContextPath()%>/servlet/sendMail" method="post">

    <table cellspacing="2" cellpadding="2" border="0">     

      <tr><td>收件人</td>

        <td><input type="text" name="to" size="30"></td>

      </tr>

      <tr><td>发件人</td>

        <td><input type="text" name="from" size="30"></td>

      </tr>

      <tr><td>主题</td>

        <td><input type="text" name="subject" size="30"></td>

      </tr>

      <tr><td valign="top">正文</td>

        <td><textarea cols="50" rows="15" name="body"></textarea></td>

      </tr>

      <tr><td></td><td>

    <input type="submit" value="提交"><input type="reset" value="重置"></td>

      </tr>

    </table>

  </form>

</body>

</html>

SendMailServlet.java

代码:

package webbook.chapter16;

import java.io.IOException;

import javax.servlet.http.*;

import javax.servlet.ServletException;

import org.apache.commons.mail.*;

public class SendMailServlet extends HttpServlet {

 private static final long serialVersionUID = -3302031686208755627L;

 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  request.setCharacterEncoding("UTF-8");

  SimpleEmail email = new SimpleEmail();

  email.setHostName("smtp.sina.com");

  email.setAuthentication("web08", "web2008");

  try {   

   email.setCharset("UTF-8");

   email.addTo(request.getParameter("to"));

   email.setFrom(request.getParameter("from"));

   email.setSubject(request.getParameter("subject"));   

   email.setMsg(request.getParameter("body"));

   email.send();

   request.setAttribute("sendmail.message", "邮件发送成功!");   

  } catch (EmailException e) {    

   e.printStackTrace();

   request.setAttribute("sendmail.message", "邮件发送不成功!");   

  }

  request.getRequestDispatcher("/sendResult.jsp").forward(request, response);

 }

}

sendResult.jsp

代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<html>

<head><title>Send E-Mail result page</title></head>

<style>

* { font-family:"宋体" ; font-size: 14px }

</style>

<body>

<p><font color="red">${requestScope['sendmail.message']}</font></p>

<p><a href="<%=request.getContextPath()%>/sendMail.jsp">返回</a></p>

</body>

</html>

好文要顶
关注我
收藏该文联系我  

 
Hongten
关注 - 21
粉丝 - 1083

+加关注

1
0

(请您对文章做出评价)

«
上一篇:Java Web 文件上传
»
下一篇:Java Web Servlet过滤器

posted @ 2011-07-26 17:13
Hongten 阅读(4898) 评论(0)

编辑
收藏

 

刷新评论刷新页面返回顶部
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: