前几天在网当档下来一个发邮件的工程.经过j2ee1.4版本的mian方法测试 好使.但是用j2ee5.0的工程的时候.就会报出javax.mail.AuthenticationFailedException的异常...网上说.是jar包冲突的问题...我找了半天也没找明白...我用得是Myclipse8.5...希望大家指教...

解决方案 »

  1.   

    j2ee5.0自带有javaee.jar包中有自导的mail , 系统会默认调用这里的。。
      

  2.   

    j2ee5.0没用过,我一直是j2ee1.4,帮你顶一下
      

  3.   

    package com.east.email;import java.util.Date;
    import java.util.Properties;import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;public class SendMail {
     private static MailAuthenticator autherticator=null;
     public static void main(String[] args) {
      for (int i=0;i<5;i++){
     
    String from="[email protected]";
    String to="[email protected]";
    String smtpServer="smtp.163.com";
    String subject="Hello ,this is a email Test!!";
    String content ="Welcome to you!!";
    Properties props = System.getProperties();

    props.put("mail.smtp.host", smtpServer);
    props.put("mail.smtp.auth","true");
    autherticator = new MailAuthenticator("[email protected]","****520");
        Session session = Session.getDefaultInstance(props,autherticator);
        MimeMessage msg = new MimeMessage(session);
        try{
           msg.setFrom(new InternetAddress(from));
           msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));
           msg.setSubject(subject);
           msg.setSentDate(new Date());
           msg.setText(content);
           Transport.send(msg);
           System.out.println("成功发送邮件......");
        }catch(Exception se){
         se.printStackTrace();
        }
        }
    }
    }
    //现在的大部分的邮件服务器都要求有身份验证,所以需要此类实现验证功能
    class MailAuthenticator extends Authenticator{

        private String username = null;
        private String userpasswd = null;

        public MailAuthenticator(){}
        public MailAuthenticator(String username,String userpasswd){
            this.username = username;
            this.userpasswd = userpasswd;
        }
        
        public void setUserName(String username){
            this.username = username;
        }

        public void setPassword(String password){
            this.userpasswd = password;
        }

        public PasswordAuthentication getPasswordAuthentication(){
            return new PasswordAuthentication(username,userpasswd);
        }
    }