2016-09-21 13 views
0
package jmail; 

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

public class HtmlJavaSend { 

public void sendHtmlEmail(String host, String port, 
     final String userName, final String password, String toAddress, 
     String subject, String message) throws AddressException, 
     MessagingException { 

    // sets SMTP server properties 
    Properties properties = new Properties(); 
    properties.put("mail.man.com", host); 
    properties.put("mail.25", port); 
    properties.put("mail.smtp.auth", "true"); 
    properties.put("mail.smtp.starttls.enable", "true"); 
    properties.put("mail.smtp.ssl.trust","mail.man.com"); 

    // creates a new session with an authenticator 
    Authenticator auth = new Authenticator() { 
     public PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(userName, password); 
     } 
    }; 

    Session session = Session.getInstance(properties, auth); 

    // creates a new e-mail message 
    Message msg = new MimeMessage(session); 

    msg.setFrom(new InternetAddress(userName)); 
    InternetAddress[] toAddresses = {new InternetAddress(toAddress)}; 
    msg.setRecipients(Message.RecipientType.TO, toAddresses); 
    msg.setSubject(subject); 
    msg.setSentDate(new Date()); 
    // set plain text message 
    msg.setContent(message, "text/html"); 

    // sends the e-mail 
    Transport.send(msg); 

} 

public static void main(String[] args) { 
    // SMTP server information 
    String host = "mail.man.com"; 
    String port = "25"; 
    String mailFrom = "[email protected]"; 
    String password = "Man"; 

    // outgoing message information 
    String mailTo = "[email protected]"; 
    String subject = "Hello my friend"; 

    // message contains HTML markups 
    String message = "<i>Greetings!</i><br>"; 
    message += "<b>Wish you a nice day!</b><br>"; 
    message += "<font color=red>Duke</font>"; 

    HtmlJavaSend mailer = new HtmlJavaSend(); 

    try { 
     mailer.sendHtmlEmail(host, port, mailFrom, password, mailTo, 
       subject, message); 
     System.out.println("Email sent."); 
    } catch (Exception ex) { 
     System.out.println("Failed to sent email."); 
     ex.printStackTrace(); 
    } 
} } 

Ошибка:com.sun.mail.util.MailConnectException: Не удалось подключиться к хосту, порт: localhost, 25; таймаут -1;

EROR пробег: Не удалось отправленного по электронной почте. com.sun.mail.util.MailConnectException: Не удалось подключиться к хосту, port: localhost, 25; таймаут -1; вложенное исключение: java.net.ConnectException: Соединение отклонено: подключение на com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:2100) в com.sun.mail.smtp.SMTPTransport.protocolConnect (SMTPTransport.java:699) по адресу javax.mail.Service.connect (Service.java:388) по адресу javax.mail.Service.connect (Service.java:246) по адресу javax.mail.Service.connect (Сервис. java: 195) на javax.mail.Transport.send0 (Transport.java:254) на javax.mail.Transport.send (Transport.java:124) на jmail.HtmlJavaSend.sendHtmlEmail (HtmlJavaSend.java:62) at jmail.HtmlJavaSend.main (HtmlJavaSend.java:85) Вызвано: java.net.ConnectException: C onnection отказался: подключение на java.net.DualStackPlainSocketImpl.connect0 (Native Method) в java.net.DualStackPlainSocketImpl.socketConnect (DualStackPlainSocketImpl.java:79) в java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:339) на java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:200) на java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:182) в java.net.PlainSocketImpl.connect (PlainSocketImpl.java:172) на java.net.SocksSocketImpl.connect (SocksSocketImpl.java:392) на java.net.Socket.connect (Socket.java:579) на java.net.Socket.connec t (Socket.java:528) на com.sun.mail.util.SocketFetcher.createSocket (SocketFetcher.java:331) на com.sun.mail.util.SocketFetcher.getSocket (SocketFetcher.java:238) на com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:2066) ... 8 более BUILD УСПЕШНОГО (общее время: 1 второе)

+0

Ошибка, которую я получаю – ips

+0

, вы только положили много кода, добавьте описание для вашего вопроса. – DimaSan

+0

это моя ошибка Не удалось отправить электронное письмо. com.sun.mail.util.MailConnectException: Не удалось подключиться к хосту, порт: localhost, 25; таймаут -1; вложенного исключения: \t java.net.ConnectException: Соединение отклонено: подключение \t в com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.java:2100) – ips

ответ

0

Вы здесь ошибка:

properties.put("mail.man.com", host); 
properties.put("25", port); 

Должно быть:

properties.put("mail.smtp.host", host); 
properties.put("mail.smtp.port", port); 
+0

Я пытаюсь использовать содержимое html в письме не только просто текст. Я смог отправить только текстовый формат, но, по-видимому, формат html дает мне вопросы \t \t Действительно ли я копирую пасту? properties.put ("mail.smtp.host ", host) properties.put (" mail.smtp.port ", порт) Поскольку я попытался krzosik, я получил ошибку com.sun.mail.util.MailConnectException: Не удалось подключиться к хосту, порт: localhost, 25; timeout -1; вложенное исключение: java.net.ConnectException: соединение отклонено: connect at com.sun.mail.smtp.SMTPTransport.openServer (SMTPTransport.jav a: 2100) – ips

+0

Я могу подтвердить, что порт 25. Я провел сеанс telnet через порт 25, mail.man.com и ip. Все они вернули сообщение готовности службы 202. Поэтому я не считаю, что это порты или доступ к брандмауэру, что является причиной отказ в соединении. – ips

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

  • Нет связанных вопросов^_^