2014-02-04 9 views
4

В настоящее время я нахожусь в строгом письме простую программу для отправки электронной почты через gmail в учетную запись gmail. Пробовали различные способы, но часто я получаю ту же ошибку: «Не удалось подключиться к SMTP-хосту: smtp.gmail.com, порт: 587;»Свойства для отправки электронной почты через gmail

Независимо от того, имеет ли он какое-либо отношение к настройкам свойств. Вот фрагмент из моей программы. Ищете решение :)

Заранее спасибо

public static boolean SendMail(String from, String password, String message, String to[]){ 
     String host = "smtp.gmail.com"; 
     Properties prop = System.getProperties(); 
     prop.put("mail.smtp.starttls.enable", "true"); 
     prop.put("mail.smtp.host", host); 
     prop.put("mail.smtp.user", from); 
     prop.put("mail.smtp.password", password); 
     prop.put("mail.smtp.port", 587); //prop.put("mail.smtp.port", 465);// 
     prop.put("mail.smtp.auth", "true"); 

     // check for the first value in the name of props or prop 
     Session session = Session.getDefaultInstance(prop, null); 
     MimeMessage mimemsg = new MimeMessage(session); 

     try{ 
      mimemsg.setFrom(new InternetAddress(from)); 

      // Get reciepents Address 
      InternetAddress[] toAddress = new InternetAddress[to.length]; 
      for (int i=0;i<to.length;i++){ 
       toAddress[i] = new InternetAddress(to[i]); 
      } 

      //Add all toAddress to mimemessage 
      for(int j=0;j<toAddress.length;j++){ 
       mimemsg.addRecipient(RecipientType.TO, toAddress[j]); 

      } 

      // Add Subject. 
      mimemsg.setSubject(" MAIL from JAVA Program"); 
      // Add Message to the content(input to the method) 
      mimemsg.setText(message); 

      Transport trans = session.getTransport("smtp"); 
      trans.connect(host,from,password); 
      trans.sendMessage(mimemsg, mimemsg.getAllRecipients()); 
      trans.close(); 
      return true; 

     }catch(MessagingException me){ 
      me.printStackTrace(); 
     } 


    return false; 
} 
+1

Адрес: 587? – MxyL

+0

Вы попробовали порт: 465? – Senthilmurugan

+0

@Senthilmurugan да, я тоже пробовал 465 – Vidhee

ответ

0

Ваши настройки выглядят правильными. Порт SMTP SMTP - 587 для TLS. Это похоже на проблему подключения к сети (имя хоста не устраняется).

  • Дважды проверьте свои учетные данные.
  • Постарайтесь, чтобы telnet smtp.gmail.com 587 из той же коробки. Вы получаете приветствие SMTP?
  • Попробуйте напрямую использовать IP-адрес. Внимание: вы не должны использовать прямой IP-адрес, кроме устранения неполадок. Он обязательно изменится в любое время и сделает ваш код бесполезным.
0

использовать это, from и password для проверки подлинности и props.put("mail.smtp.port", "465");465 номер порта

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

также использовать это свойство:

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

@ MohsinAzeem. Я сделал предложенные изменения, но все еще ошибка сохраняется – Vidhee

+0

@ Види еще такая же ошибка? –

+0

см. Мои недавние изменения –

0

H aving props.put ("mail.smtp.host", "173.194.78.108"); вместо props.put ("mail.smtp.host", "smtp.gmail.com"); решена проблема

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