注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

javamail发送邮件  

2011-03-18 11:38:15|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      在jdk6之前,java发送邮件需要javamail和jaf两个包,在jdk6后,集成了jaf,因此只需添加javamail的jar就行了。下面的下载地址在写本文时还有效:
mail.jar 下载地址:
http://java.sun.com/products/javamail/downloads/index.html
这里会自动跳转到:http://www.oracle.com/technetwork/java/index-138643.html

activation.jar 下载地址:
http://java.sun.com/products/javabeans/jaf/downloads/index.html
这里会自动跳转到:http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html

      将mail.jar包添加到项目库引用了,发送邮件主要流程如下:
public static void main(String[] args) {
        final String userName = "××××××@163.com";
        final String password = "××××××";
        final String smtpServer = "smtp.163.com";
        final String fromMailAddress = userName;
        final String toMailAddress = "××××××@tom.com";
       
        Properties props = new Properties();
        props.put("mail.smtp.host", smtpServer);
        props.put("mail.smtp.auth", "true");
       
        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);
       
        Transport transport = null;
        try {
            //Define message
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(fromMailAddress));
            message.addRecipient(RecipientType.TO, new InternetAddress(toMailAddress));
            message.setSubject("hello man");
            message.setText("for Java mail");
           
            //Send message
            message.saveChanges();
            transport = session.getTransport("smtp");
            transport.connect(userName, password);
            transport.sendMessage(message, message.getAllRecipients());
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        } finally {
            if (transport != null)    {
                try {
                    transport.close();
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
            }
        }
    }

      如果是使用Myeclipse建立的javaee5项目,则这个测试类运行起来会报一个错:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
解决方法是将Myeclipse的javaee5的jar包里的mail目录删除,因为其内部包含的mail class不完全,引入新的mail.jar包就可以了。
  评论这张
 
阅读(1142)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017