2017-10-20 24 views
0

J'envoie des e-mails via gmail, mais lorsque j'essaie d'envoyer des e-mails à partir de courrier professionnel, je reçois une exception. De l'entreprise, je peux envoyer un courriel à un autre employé, mais lorsque j'essaie de l'envoyer au compte gmail, j'obtiens javax.mail.SendFailedException: Adresses non valides; l'exception imbriquée est: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Impossible de relayer l'exception. Comment puis-je le réparer?Envoyer un e-mail à partir du courrier de bureau via javamail

Via gmail

final String username = "mail goes here"; 
    final String password = "password goes here"; 

    final String to = "mail goes here"; 
    final String from = username; 

    Properties props = new Properties(); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.transport.protocol", "smtp"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.port", "587"); 
    props.put("mail.smtp.ssl.trust", "smtp.gmail.com"); 

    Session session = Session.getInstance(props, 
      new javax.mail.Authenticator() { 
       protected PasswordAuthentication getPasswordAuthentication() { 
        return new PasswordAuthentication(username, password); 
       } 
      }); 

    try { 
     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(from)); 
     message.setRecipients(Message.RecipientType.TO, 
       InternetAddress.parse(toGmail)); 
     message.setSubject("Test"); 
     message.setText("Testing"); 
     Transport.send(message); 
     System.out.println("Mail sent succesfully"); 
    } catch (MessagingException e) { 
     throw new RuntimeException(e); 
    } 

Par courrier d'entreprise

final String toGmail = "[email protected]"; 
    final String toCompany = "one of employees mail goes here"; 
    final String from = "company's noreply mail goes here"; 
    final String to = toGmail; 

    Properties props = new Properties(); 
    props.put("mail.transport.protocol", "smtp"); 
    props.put("mail.smtp.port", "25"); 
    props.put("mail.smtp.host", "10.100.25.5"); 
    props.setProperty("mail.debug", "true"); 

    // props.put("mail.smtp.auth", "true"); 
    // props.put("mail.smtp.starttls.enable", "true"); 
    // props.put("mail.smtp.ssl.enable", "true"); 

    Session session = Session.getInstance(props); 

    try { 
     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(from)); 
     message.setRecipients(Message.RecipientType.TO, 
       InternetAddress.parse(to)); 
     message.setSubject("Test"); 
     message.setText("Testing"); 
     Transport.send(message); 
     System.out.println("Mail sent succesfully"); 
    } catch (MessagingException e) { 
     throw new RuntimeException(e); 
    } 
+0

Je suis confus au sujet de l'endroit où vous voulez envoyer des mails. Pourriez-vous clarifier cela? –

+0

de l'entreprise mait à gmail –

+0

Avez-vous essayé d'utiliser le port SMTP 465? –

Répondre

0

La réponse est dans le JavaMail FAQ. Vous ne vous authentifiez pas auprès de votre serveur de messagerie d'entreprise, il ne vous permet donc pas d'envoyer des messages en dehors de l'entreprise.