2016-09-21 534 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(服務 javax.mail.Service.connect(Service.java:246)。 java:195)at javax.mail.Transport.send0(Transport.java:254)at javax.mail.Transport.send(Transport.java:124)at jmail.HtmlJavaSend.sendHtmlEmail(HtmlJavaSend.java:62)在 jmail.HtmlJavaSend.main(HtmlJavaSend.java:85)導致: java.net.ConnectException:C onnection拒絕:在以 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect java.net.DualStackPlainSocketImpl.connect0(本機方法)連接(AbstractPlainSocketImpl.java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:579)at java.net.Socket.connec t(Socket.java:528)at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:331) at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238) at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2066) ... 8個BUILD SUCCESSFUL(總時間: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.smtp.host", host); 
properties.put("mail.smtp.port", port); 
+0

我試圖在電子郵件中使用html內容,而不僅僅是文本。我能夠發送只是文本格式,但顯然HTML格式是給我的問題 \t \t我是否完全複製粘貼? properties.put(「mail.smtp。(「mail.smtp.port」,port); 因爲我試過krzosik我得到錯誤com.sun.mail.util.MailConnectException:無法連接到主機,端口:本地主機,25;超時-1;嵌套的異常是:java.net.ConnectException:連接被拒絕:連接在com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.jav a:2100) – ips

+0

我可以確認端口25是打開的,我通過端口25爲mail.man.com和ip運行了一個telnet會話,它們都返回了一個202服務就緒消息: 所以我不認爲它是端口或防火牆訪問的原因被拒絕的連接。 – ips

相關問題