2014-12-06 3 views
0

Кто-то, пожалуйста, будьте осторожны и помогите мне в этом, я был на этом вечно. Я немного новичок в программировании, и я никогда не настраивал сервер или что-либо еще. Я получаю эту ошибку, пытаясь запустить мою программу. «java.net.ConnectException: Connection refused: connect» и «javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;»Отправить письмо при нажатии на JButton?

Вот мой код:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
if (jButton1.isEnabled()); 
Properties sessionProperties = System.getProperties(); 
String to = "[email protected]"; 
    String from = "[email protected]"; 
    String host = "localhost"; 
    Properties properties = System.getProperties(); 
    properties.setProperty("mail.smtp.host", host); 
    Session session = Session.getDefaultInstance(properties); 

    try{ 
    // Create a default MimeMessage object. 
    MimeMessage message = new MimeMessage(session); 

    // Set From: header field of the header. 
    message.setFrom(new InternetAddress(from)); 

    // Set To: header field of the header. 
    message.addRecipient(Message.RecipientType.TO, 
           new InternetAddress(to)); 

    // Set Subject: header field 
    message.setSubject("Infomation"); 

    // Now set the actual message 
    message.setText("Hello!"); 

    // Send message 
    Transport.send(message); 

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

ответ

0

Похоже, что ваш код пришел из http://www.tutorialspoint.com/java/java_sending_email.htm Если да, то я хотел бы, чтобы направить вас в предложении в Тута

Here it is assumed that your localhost is connected to the internet and capable enough 
to send an email. 

Подспособленный, это означает, что у вас есть SMTP-сервер, работающий на localhost; причина, по которой вы получили исключение, заключалась в том, что Transport попытался использовать SMTP-сервер на localhost: 25 для отправки почты.

Ваши варианты затем - либо запустить SMTP-сервер локально (реальная боль), либо использовать стороннюю SMTP-службу (GMail, Amazon SES и т. Д.) Для отправки почты.

+0

Большое вам спасибо за помощь и ответ! Пожалуйста, объясните, как я могу использовать сторонний SMTP с кодом выше? Я знаю, что не могу использовать открытый класс и все это в прослушивателе действий, поэтому я не использовал какой-либо другой код. Я очень ценю ваш ответ. – TheCoder233

+0

Взгляните на этот пример использования Gmail в качестве службы SMTP: http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/ Если вы решите пойти с опцией enterprise-y (я не знаю объем кода, который вы пишете), Amazon SES, вероятно, ваш лучший вариант. Он имеет хорошо разработанный SDK (см. Здесь: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-smtp-java.html) и хорошо интегрируется с другими сервисами Amazon. –

+0

Я посмотрел на этот пример, но он начинает его, заявляя публичный класс, который я не могу сделать в прослушивателе действий. (Или, по крайней мере, я не уверен, как это сделать.) Если да, то каким образом я могу использовать этот код в прослушивателе действий? Большое вам спасибо за ваш ответ! – TheCoder233

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