java mail邮件开发-web端

利用JDNI基于tomcat服务器进行简单邮件开发

一般流程:
1.配置文件:
在项目的根目录下的META-INF下创建context.xml,配置如下:

  <Context>
   <Resource name="mail/session" auth="Container"
             type="javax.mail.Session"
             mail.smtp.host="smtp.sina.com"
             mail.transport.protocol="smtp"
             mail.smtp.auth="true"/>
</Context>

在web.xml文件中需要配置:

 <resource-ref>
    <res-ref-name>mail/session</res-ref-name>
    <res-type>javax.mail.Session</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

这些配置的基本信息,在自己安装的tomcat的主目录下的webapps下的docs下的 jndi-resources-howto.html这个文件下有详细的说明,我这里就不加解释了。

2.创建servlet对象:
在创建servlet对象之前,需要把java mail依赖的jar文件,也就是mail.jar加入到tomcat的根目录下的lib里面,因为,在tomcat启动时就会创建邮件环境对象Session,所以要依赖mail.jar文件。

SendMailServlet.java详细如下:

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //String smtpServer = "smtp.sina.com";
         String user = "******@sina.com";//用户名
         String password = "**********";//密码
         String from="********@sina.com";//发件人
         String to="**********@qq.com";//收件人
         String subject="Html Test";//邮件标题
         String body="<a href=http://www.baidu.com>"+"欢迎访问百度"+"</a></br>";
         try {
             //利用JDNI创建并初始化session对象
             Context initCtx = new InitialContext();
             Context envCtx = (Context) initCtx.lookup("java:comp/env");
             Session session = (Session) envCtx.lookup("mail/session");
             //创建邮件的MimeMessage对象
             Message message = new MimeMessage(session);
             message.setFrom(new InternetAddress(from));
             message.setRecipients(RecipientType.TO, InternetAddress.parse(to));
             message.setSentDate(new Date());
             message.setSubject(subject);
             message.setText(body);
             //保存并生成邮件
             message.saveChanges();
             Transport transport = session.getTransport();
             transport.connect(user, password);
             transport.sendMessage(message, message.getRecipients(RecipientType.TO));
             //关闭transport对象
             transport.close();
             response.setContentType("text/html,charset=gbk");
             response.getWriter().write("您的邮件发送成功");
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

通过上面的基本配置,加代码就可完成web端的邮件开发。有什么不对的地方,望指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值