2015-10-07 3 views
0

Это мой код. Я получаю следующее исключение.Отправка почты через smtp и gettin ошибку?

final String username = "[email protected]"; 
final String password = "mypass"; 

Properties props = new Properties(); 
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"); 

Session session = Session.getInstance(props, new javax.mail.Authenticator() { 
    protected javax.mail.PasswordAuthentication getPasswordAuthentication() { 
     return new javax.mail.PasswordAuthentication(username, password); 
    } 
}); 
try { 
    Message message = new MimeMessage(session); 
    message.setFrom(new InternetAddress("[email protected]")); 
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); 
    message.setSubject("Testing subject"); 

    BodyPart messageBodyPart = new MimeBodyPart(); 
    messageBodyPart.setText("test body"); 

    Multipart multipart = new MimeMultipart(); 
    multipart.addBodyPart(messageBodyPart); 
    messageBodyPart = new MimeBodyPart(); 
    message.setContent(multipart); 

    Transport.send(message); 

Exception Я получаю:

Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. pl7sm1333988wic.4 - gsmtp 
    at Test.main(Test.java:200) 
     Caused by: javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. pl7sm1333988wic.4 - gsmtp 
    at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020) 
    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716) 
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388) 
    at javax.mail.Transport.send0(Transport.java:169) 
    at javax.mail.Transport.send(Transport.java:98) 
    at Test.main(Test.java:195) 

ответ

0

Я думаю, что вам не хватает, чтобы добавить к вашим свойствам следующий предохранитель ..

mail.smtp.starttls.required=true 
+0

Я использовал старую версию ** mail.jar **, это было причиной –

0

Используйте этот код работает для отправки почты

import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

/** 
* 
* @author xyz 
*/ 
public class MailSend { 
    public static void main (String [] args){ 
     String to="[email protected]";//change accordingly 

//Get the session object 
    Properties props = new Properties(); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.socketFactory.port", "465"); 
    props.put("mail.smtp.socketFactory.class", 
      "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "465"); 

    Session session = Session.getDefaultInstance(props, 
    new javax.mail.Authenticator() { 
    protected PasswordAuthentication getPasswordAuthentication() { 
    return new PasswordAuthentication("email_address","password");//change accordingly 
    } 
    }); 

//compose message 
    try { 
    MimeMessage message = new MimeMessage(session); 
    message.setFrom(new InternetAddress("email_address"));//change accordingly 
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); 
    message.setSubject("Welcome!!"); 

    message.setText("Hiii buddy "); 



    Transport.send(message); 

    System.out.println("message sent successfully"); 

    } catch (MessagingException e) {throw new RuntimeException(e);} 

} 
    } 

если вы га на вашем компьютере нет сервера smtp, а затем загрузите его и запустите после загрузки.

попробовать этот

0

Я использовал старую версию mail.jar использования этой баночки почты 1.4.7.jar и после этого для аутентификации Чтобы открыть доступ счета: https://www.google.com/settings/security/lesssecureapps (включить) это была проблема при использовании google smtp

Смежные вопросы