2011-09-01 3 views
0

J'essaye d'envoyer un courrier en utilisant l'hôte d'email de GoDaddy que j'ai enregistré il y a quelques jours en utilisant Java mail api, mais il s'avère que ce n'est pas si facile à implémenter, et je reçois, cette erreur:Envoi de courrier électronique en utilisant Javamail

Could not connect to SMTP host: smtpout.asia.secureserver.net, port: 80, response: -1 

J'ai essayé les ports 3535, 465, 587, 25 mais toujours la même erreur. Le même code a été testé ci-dessous pour travailler avec l'envoi de courrier électronique en utilisant Gmail, avec l'ajout de ce code (que j'ai omis dans ce cas):

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 

MailSender.java:

public class MailSender { 

     private static String HOST = "smtpout.asia.secureserver.net"; 
     private static String PORT = "80"; 

     public static void sendMail(final Mail mail) throws MailException { 

      EmailValidator validtor = new EmailValidator(); 

      if (validtor.validate(mail.getReceipient())) { 
       Properties props = new Properties(); 
       props.put("mail.smtp.host", HOST); 
       props.put("mail.smtp.socketFactory.port", PORT);   
       props.put("mail.smtp.auth", "true"); 
       props.put("mail.smtp.port", PORT); 

       Session session = Session.getDefaultInstance(props, 
         new javax.mail.Authenticator() { 
          protected PasswordAuthentication getPasswordAuthentication() { 
           return new PasswordAuthentication(mail.getUsername(),mail.getPassword()); 
          } 
         }); 

       try { 
        Message message = new MimeMessage(session); 
        message.setFrom(new InternetAddress(mail.getSender())); 
        message.setRecipients(Message.RecipientType.TO, 
          InternetAddress.parse(mail.getReceipient())); 
        message.setSubject(mail.getSubject());   
        message.setText(mail.getBody()); 
        Transport.send(message); 
        System.out.println("OK"); 

       } catch (MessagingException e) { 
        throw new MailException(e.getMessage()); 
       }   
      } else { 
       throw new MailException("Email address not valid."); 
      }  
     } 
    } 

Le paramètre Mail dans cette classe contient toutes les autres informations de messagerie, le nom d'utilisateur/mot de passe, l'expéditeur et la chaîne d'adresse électronique du destinataire, qui est testé pour fonctionner avec les clients de messagerie tels que Outlook & Thunderbird.

+0

Quel port utilisez-vous Outlook/Thunderbird? – SLaks

Répondre

0

Apparemment, le problème n'a pas été avec Java courrier api, mais était avec le serveur GoDaddy, j'ai consulté leur support technique et fonctionne bien maintenant.

2

Le port 80 est utilisé pour HTTP.

changement à 465 ou 587.

(Consultez la documentation GoDaddy pour le port correct)

+0

Essayez le port 587, voici ce que je reçois: Impossible de se connecter à l'hôte SMTP: smtpout.asia.secureserver.net, port: 587, réponse: 421 – xybrek

+0

Je reçois également cette erreur: Impossible de se connecter à l'hôte SMTP: smtpout.asia .secureserver.net, port: 465, réponse: -1 – xybrek

+0

Essayez également le port 25. – SLaks

Questions connexes