2016-06-29 4 views
-2

Я хотел бы отправить электронное письмо с помощью моего приложения Java. Когда я нажимаю кнопку, должно быть автоматически отправлено электронное письмо, но почему-то я еще не нашел решение. Я нашел много примеров кода в Интернете, но неважно, пользуюсь ли я Gmail/gmx или Outlook, я всегда получаю сообщение:Использование Java Mail

«Не удалось подключиться к SMTP-хосту: mail.gmx.net , порт: 587; вложенного исключения: java.net.ConnectException: подключение истекло: подключение»

на основе домена, поэтому хозяин mail.gmx.net или smtp.office365.com и т.д .. Так что я думаю, что есть какая-то проблема с подключением, но я не смог ее исправить. У вас есть идеи/коды, которые сработали для вас?

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

Tobias

+0

Добро пожаловать на переполнение стека! Пожалуйста, посмотрите, как опубликовать [MCVE]. – Frank

+0

«Тайм-аут соединения/соединение» обычно указывает на проблему с брандмауэром. – EJP

ответ

-1

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

package SendMail; 

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

/** 
* @author akash073 
* 
*/ 

public class CrunchifyJavaMailExample { 

    //static Properties mailServerProperties; 
    // static Session getMailSession; 
    // static MimeMessage generateMailMessage; 

    public static void main(String args[]) throws AddressException, MessagingException { 
     generateAndSendEmail(); 
     System.out.println("\n\n ===> Your Java Program has just sent an Email successfully. Check your email.."); 
    } 

    public static void generateAndSendEmail() throws AddressException, MessagingException { 

     String smtpHost="put Your Host"; 
     String smtpUser="UserName in full @somthing.com"; 
     String smtpPassword="your password"; 
     int smtpPort=25;//Port may vary.Check yours smtp port 
     // Step1 
     System.out.println("\n 1st ===> setup Mail Server Properties.."); 
     Properties mailServerProperties = System.getProperties(); 
     //mailServerProperties.put("mail.smtp.ssl.trust", smtpHost); 
//  mailServerProperties.put("mail.smtp.starttls.enable", true); // added this line 
     mailServerProperties.put("mail.smtp.host", smtpHost); 
     mailServerProperties.put("mail.smtp.user", smtpUser); 
     mailServerProperties.put("mail.smtp.password", smtpPassword); 
     mailServerProperties.put("mail.smtp.port", smtpPort); 

     mailServerProperties.put("mail.smtp.starttls.enable", "true"); 
     System.out.println("Mail Server Properties have been setup successfully.."); 

     // Step2 
     System.out.println("\n\n 2nd ===> get Mail Session.."); 
     Session getMailSession = Session.getDefaultInstance(mailServerProperties, null); 
     MimeMessage generateMailMessage = new MimeMessage(getMailSession); 
     generateMailMessage.setFrom (new InternetAddress (smtpUser)); 
     generateMailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); 
     generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("[email protected]")); 
     generateMailMessage.setSubject("Greetings from Crunchify.."); 
     String emailBody = "2.Test email by Crunchify.com JavaMail API example. " + "<br><br> Regards, <br>Crunchify Admin"; 
     generateMailMessage.setContent(emailBody, "text/html"); 
     System.out.println("Mail Session has been created successfully.."); 

     // Step3 
     System.out.println("\n\n 3rd ===> Get Session and Send mail"); 
     Transport transport = getMailSession.getTransport("smtp"); 

     // Enter your correct gmail UserID and Password 
     // if you have 2FA enabled then provide App Specific Password 
     transport.connect(smtpHost,smtpPort, smtpUser, smtpPassword); 
     transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients()); 
     transport.close(); 
    } 
} 

Для получения дополнительной информации crunchify

+0

Ничего здесь, чтобы решить фактическую проблему, о которой сообщает OP. – EJP