2015-10-06 3 views
2

J'utilise java mail api pour l'envoi de courrier. Je suis en mesure d'envoyer des messages à l'aide du compte Google, mais je suis confronté à un problème d'envoi de mon domaine via SSL.Pas en mesure d'envoyer le courrier de mon hôte

Voici la mise en œuvre, s'il vous plaît laissez-moi savoir où je manque.

// Create all the needed properties 
     Properties connectionProperties = new Properties(); 
     // SMTP host 
     connectionProperties.put("mail.smtp.host", "abc.example.com"); 
     // Is authentication enabled 
     connectionProperties.put("mail.smtp.auth", "true"); 
     // Is StartTLS enabled 
     connectionProperties.put("mail.smtp.starttls.enable", "true"); 
     // SSL Port 
     connectionProperties.put("mail.smtp.socketFactory.port", "465"); 
     // SSL Socket Factory class 
     connectionProperties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 

     // SMTP port, the same as SSL port :) 
     connectionProperties.put("mail.smtp.port", "465"); 

     // Create the session 
     Session session = Session.getDefaultInstance(connectionProperties, new javax.mail.Authenticator() 
     { // Define the authenticator 
      protected PasswordAuthentication getPasswordAuthentication() 
      { 
       return new PasswordAuthentication("[email protected]", "abcxdsjdf123"); 
      } 
     }); 

     System.out.println("done!"); 

     // Create and send the message 
     try 
     { 
      // Create the message 
      Message message = new MimeMessage(session); 
      // Set sender 
      message.setFrom(new InternetAddress("[email protected]")); 
      // Set the recipients 
      message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); 
      // Set message subject 
      message.setSubject("Hello from Test"); 
      // Set message text 
      message.setText("This is test mail;)"); 

      System.out.print("Sending message..."); 

      // Send the message 
      Transport.send(message); 

      System.out.println("done!"); 
     } 
     catch (MessagingException e) 
     { 
      System.out.println(e.toString()); 
     } 

Ci-dessous est l'exception que je reçois:

javax.mail.MessagingException: Exception reading response; 
    nested exception is: 
    java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer) 

Toute sorte d'aide serait appréciable. Merci d'avance.

+0

je pense que vous do't mentionner sur le protocole props.put ("smtp" "mail.transport.protocol."); mettez ceci à la fin – Sree

+0

Qui hébergez-vous actuellement? –

+0

J'utilise magemojo hôte –

Répondre

0

Try this ..

public class SentMail { 
     public boolean deliverMail(String username, String email, String subject, String content) { 
      boolean sent = false; 
      try { 
       String delim = "\n\n"; 
       String text = "Hi ," + delim + content + delim + "Thank you ," + delim + username + "\n" + email; 
       String from = "from_email"; 
       String pass = "from_pass"; 
       String to = "to_email"; 
       <!--Your host--> 
       String host = "smtp.zoho.com"; 
       <!--Host port--> 
       String port = "465"; 
       Properties properties = System.getProperties(); 
       properties.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
       properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
       properties.setProperty("mail.smtp.socketFactory.fallback", "false"); 
       properties.setProperty("mail.smtp.socketFactory.port", port); 
       properties.put("mail.smtp.startssl.enable", "true"); 
       Session session = Session.getDefaultInstance(properties); 
       MimeMessage message = new MimeMessage(session); 
       message.setFrom(new InternetAddress(from)); 
       message.addRecipient(Message.RecipientType.TO, 
         new InternetAddress(to)); 
       message.setSubject(subject); 
       message.setText(text); 
       Transport transport = session.getTransport("smtp"); 
       transport.connect(host, from, pass); 
       transport.sendMessage(message, message.getAllRecipients()); 
       transport.close(); 
       sent = true; 
      } catch (Exception e) { 

      } 
      return sent; 

     } 
    } 
+0

Merci pour la réponse, mais je reçois javax.mail.MessagingException: Impossible de se connecter à l'hôte SMTP: abc.magemojo.com, port: 25; l'exception imbriquée est: \t javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: ancrage de confiance pour le chemin de certification non trouvé. –

+0

Il semble que vous n'êtes pas correctement configuré l'hôte et le port .. –

+0

mon hôte est example.magemojo.com et le port est 465 –