2011-05-21 3 views
2
public class MailEx { 
public static void main(String[] args) { 
    try { 

     String userName = "[email protected]";   
     String password = "123";    
     String hostName = "smtp.gmail.com"; 
     String fromName = "Splendore Bkk"; 
     String to[] = {"[email protected]"}; 

     System.out.println("to.length::"+to.length); 

     Properties props = new Properties(); 
     String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; 

     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.port", "465"); 
     props.put("mail.debug", "true"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true");  
     props.setProperty("mail.smtp.socketFactory.port", "465"); 
     props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); 
     props.setProperty("mail.smtp.socketFactory.fallback", "false"); 
     System.out.println("to.length:sadfsadfds:"+to.length); 
     // Get the default Session object. 
     Session session = Session.getInstance(props); 

     // Create a default MimeMessage object. 
     MimeMessage message1 = new MimeMessage(session); 

     // Set the RFC 822 "From" header field using the 
     // value of the InternetAddress.getLocalAddress method. 
     message1.setFrom(new InternetAddress(userName,fromName)); 

     Address[] addresses = new Address[to.length]; 
     for (int i = 0; i < to.length; i++) { 
      Address address = new InternetAddress(to[i]);    
      addresses[i] = address; 
      // Add the given addresses to the specified recipient type. 
      message1.addRecipient(Message.RecipientType.TO, new InternetAddress(to[i])); 
     }  
     // Set the "Subject" header field. 
     message1.setSubject("Testing"); 

     // Sets the given String as this part's content, 
     // with a MIME type of "text/plain". 
     Multipart mp = new MimeMultipart("alternative"); 
     MimeBodyPart mbp = new MimeBodyPart(); 
     mbp.setContent("Hii from cc", "text/html"); 
     mp.addBodyPart(mbp); 
     message1.setContent(mp); 
     message1.saveChanges(); 

     // Send message 
     Transport transport = session.getTransport("smtp"); 
     transport.connect(hostName,userName,password); 
     transport.sendMessage(message1,addresses); 
     transport.close(); 


    }catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

} 

J'obtiens l'erreur ....envoi du courrier problème

DEBUG: JavaMail version 1.4ea 
DEBUG: java.io.FileNotFoundException: ..\Java\jdk1.6.0\jre\lib\javamail.providers (The system cannot find the file specified) 
DEBUG: !anyLoaded 
DEBUG: not loading resource: /META-INF/javamail.providers 
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 
    at javax.mail.Session.loadProvidersFromStream(Session.java:928) 
    at javax.mail.Session.access$000(Session.java:174) 
    at javax.mail.Session$1.load(Session.java:870) 
    at javax.mail.Session.loadResource(Session.java:1084) 
    at javax.mail.Session.loadProviders(Session.java:889) 
    at javax.mail.Session.<init>(Session.java:210) 
    at javax.mail.Session.getInstance(Session.java:249) 
    at com.test.MailEx.main(MailEx.java:41) 

Alors u peut me dire quel est le problème ...

Répondre

7

Pour éviter DEBUG avertissements, créer des fichiers javamail.providers, javamail.address.map, javamail.default.address.map, javamail.default.providers sous

(Program Files)\Java\jdk1.6.0\jre\lib\ 

dossier. A propos de l'erreur, NoClassDefFoundError, bien vous n'avez simplement pas ajouté JavaMail à votre classpath. Si vous utilisez Eclipse, faites un clic droit sur le projet, suivez Build Path ≥ Ajouter des bibliothèques ou quelque chose comme ça et ajoutez le fichier jar de javamail (que vous devriez trouver sous votre dossier lib/) au classpath de votre projet.

+1

merci pour les ans mais j'ai ajouté 2 jar pour l'envoi de courrier .. i.e mail.jar et activation.jar – sachin

0

Voir ce que cela a solution

my ans check it out

c'est avoir la solution souhaitée pour votre problème

espoir qui aidera.