2016-04-25 7 views
0
 package Controller; 

     import java.util.Properties; 
     import javax.mail.*; 
     import javax.mail.internet.InternetAddress; 
     import javax.mail.internet.MimeMessage; 

    public class SendMail { 
     static String from = "******@gmail.com"; 
    static String pass ="*****"; 
    static String to = "****@gmail.com"; 
    static String host = "smtp.gmail.com"; 


    public static void main(String[] args) { 
      Properties properties = System.getProperties(); 
      properties.put("mail.smtp.starttls.enable", "true"); 
      properties.put("mail.smtp.host", host); 
      properties.put("mail.smtp.user", from); 
      properties.put("mail.smtp.password", pass); 
      properties.put("mail.smtp.port", "587"); 
      properties.put("mail.smtp.auth", "true"); 
      Session session = Session.getDefaultInstance(properties); 

      try{ 
     MimeMessage message = new MimeMessage(session); 


     message.setFrom(new InternetAddress(from)); 


     message.addRecipient(Message.RecipientType.TO, 
           new InternetAddress(to)); 


     message.setSubject("This is the Subject Line!"); 


     message.setText("Ithis is a test"); 


     Transport transport = session.getTransport("smtp"); 
     transport.connect(host, from, pass); 
     transport.sendMessage(message, message.getAllRecipients()); 
     transport.close(); 
     System.out.println("Sent message successfully...."); 
    } 

     catch (MessagingException mex) { 
     mex.printStackTrace(); 


     } 
     } 
    } 

Dieser Code zeigt den Fehler: javax.mail.MessagingException: Konnte Socket TLS konvertieren; Könnte mir jemand helfen, warum kann es Socket zu TLS nicht konvertieren. Was kann ich tun, um den Fehler zu beheben? Bitte hilf mir.ich diesen Code haben Post von Java senden Fehler zeigt

+0

Die Java Mail FAQ hat einen Zeiger auf einige [SSL-Debugging-Tipps] senden (http://www.oracle.com/technetwork/java/javamail/faq/index.html#ssldebug). –

Antwort

0

Standardmäßig lässt Google Mail keine "weniger sicheren" Apps auf Ihre E-Mails zugreifen.

Um Ihren Code zu erhalten auszuführen:

+0

hat nicht für mich funktioniert –

0

Entweder das Zertifikat nicht in der Datei cacerts installiert wurde oder Sie können die Google-SMTP-URL festlegen möchten als "vertrauenswürdig". Versuchen Sie, diesen Code

properties.put("mail.smtp.ssl.trust", "smtp.gmail.com"); 

auf der anderen Notiz. Sie könnten die javax.mail.Authenticator festlegen müssen, wenn Sie die session

0

// Build Sitzung zu erhalten versuchen Mimemessage erstellen

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

     Session session = Session.getDefaultInstance(props, new Authenticator() { 
      @Override 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication("name_here", "password_here"); 
      } 
     }); 
+0

** NICHT ** ** [Socket Factory Eigenschaften festlegen] (http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes). –

Verwandte Themen