日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【记录】【解决方案】java发邮件错误:Couldn‘t connect to host, port: localhost, 25; timeout -1;易邮SMTP服务器无法启动;

發布時間:2023/12/2 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【记录】【解决方案】java发邮件错误:Couldn‘t connect to host, port: localhost, 25; timeout -1;易邮SMTP服务器无法启动; 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

  • java發郵件無法連接。異常信息如下:
  • com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;nested exception is:java.net.ConnectException: Connection refused: connectat com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)at javax.mail.Service.connect(Service.java:388)at javax.mail.Service.connect(Service.java:246)at javax.mail.Service.connect(Service.java:195)at javax.mail.Transport.send0(Transport.java:254)at javax.mail.Transport.send(Transport.java:124)at Mail.MailUtils2.sendMain(MailUtils2.java:81)at Mail.MailUtils2.main(MailUtils2.java:88) Caused by: java.net.ConnectException: Connection refused: connectat java.base/sun.nio.ch.Net.connect0(Native Method)at java.base/sun.nio.ch.Net.connect(Net.java:574)at java.base/sun.nio.ch.Net.connect(Net.java:563)at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)at java.base/java.net.Socket.connect(Socket.java:648)at java.base/java.net.Socket.connect(Socket.java:597)at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:359)at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2175)... 8 more
  • SMTP服務器25端口用不了。

  • 解決方案

    查看網絡上博客之后,發現是25端口并沒有啟動,控制面板-》…-》服務查看不到,即SMTP服務并沒有啟動。
    所以接下來又想怎樣下載SMTP服務,但失敗。
    最后我用Winmail Mail Server替換了易郵服務器,最終java代碼運行成功。


    第一步,下載&安裝Winmail Mail Server

    舊版本6.5網址

    https://www.winmail.cn/download_old.php

    可試用90天。

    安裝步驟一直next即可,兩個都選擇。最終安裝后得到:


    第二步,啟動Winmail Mail Server,并使用Mail管理工具。

    選擇上面,開啟Mail服務器。應該會彈窗

    可以不用管,這個界面是用email地址密碼生成email的第一種方法。可以用方法二,在登錄管理工具之后,添加用戶生成email。
    點擊下面一個管理工具,啟動界面

    • 本地主機的意思是,將mail服務器運行在自己的電腦上(一般運行在服務器上)。【1】
    • 遠程主機,可以通過第一種添加用戶生成的ip地址登錄,端口默認即可。
    • 登錄用戶中的用戶名即管理員,不用改。密碼是安裝時設置的那個。

    登錄進去第一件事,設置域名管理

    進去第二步,添加用戶組&用戶。


    到這個時候,整個Mail服務器上就有了剛剛添加的用戶信息,也就是說

  • 服務器上分配給用戶存儲,用于存儲mail內容。
  • 用戶可以通過mail終端軟件,登錄mail服務器,查看mail內容。【1】

  • 第三步,使用Foxmail終端軟件操作Winmail服務器上mail內容

    1. 下載官網

    https://www.foxmail.com

    2. 登錄mail用戶

    a. 選擇其他登錄方式
    b. 用郵箱名和創建時設置的密碼登錄即可
    c. 設置POP服務器和SMTP服務器。即mail服務器運行的機器ip地址。

    3. 測試一下能否正常發送接收消息。


    第四步,正題,運行java代碼實現發送郵件

    1. 設置用戶一的郵件地址和密碼,用戶二的郵件地址。正常代碼運行。代碼如下:

    import java.util.Properties;import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Message.RecipientType; 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;/*** 郵件發送的工具類 使用eyoumailserver,內部賬戶發郵件*/ /** javax.mail.Session:上下文環境信息,如服務器的主機名、端口號、協議名稱等* javax.mail.Message:郵件模型,發送郵件和接收郵件的媒介,封裝了郵件的信息,如發件人、收件人、郵件標題、郵件內容等* javax.mail.Transport:連接郵件SMTP服務器,發送郵件 javax.mail.Store:連接郵件POP3、IMAP服務器,收取郵件*/ public class MailUtils2 {private static String userName = "xiaorui@wm.com";// 發送郵件的人private static String password = "xiaorui123";// 發送郵件的賬戶的密碼private static String userName2 = "xiaotang@wm.com";// 接收郵件的人private static String port = "25";// 465、587,默認25/*** 該方法用來發送郵件* * @param to:給誰發郵件**/public static void sendMain(String to) throws AddressException, MessagingException {// 1、創建連接對象,連接到郵箱服務器Properties props = new Properties();// 開啟debug調試props.setProperty("mail.debug", "true");// stmp服務器需要進行身份驗證,也就是有戶名和密碼的校驗,這樣才能通過驗證props.setProperty("mail.smtp.auth", "true");// 發送郵件協議名稱props.setProperty("mail.transport.protocol", "smtp");// 設置郵件服務器主機名props.setProperty("mail.host", "127.0.0.1");// 本地"localhost"// 設端口號(該配置可寫可不寫)props.setProperty("mail.smtp.port", port);// Authenticator:認證信息Session session = Session.getInstance(props, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(userName, password);// 使用它給其他賬戶發郵件}});// 2、創建郵件對象Message message = new MimeMessage(session);// 2.1設置發件人message.setFrom(new InternetAddress(userName));// 2、2設置收件人message.addRecipient(RecipientType.TO, new InternetAddress(to));// 2.3郵件的主題message.setSubject("測試發消息");// 2.4郵件的正文(即郵件的內容)message.setContent("測試郵件:來自xiaorui@wm.com的郵件", "text/html;charset=utf-8");// 3.發送郵件 // Transport trans = session.getTransport(); // //連接郵件服務器 // trans.connect(userName, password); // //發送郵件 // trans.sendMessage(message, message.getAllRecipients()); // //關閉連接 // trans.close(); Transport.send(message);// (兩種方式都可以)System.out.println("發送成功");}public static void main(String[] args) {try {sendMain(userName2);} catch (Exception e) {e.printStackTrace();}} }

    查看結果,運行成功。

    參考:

  • Java Web(十三) 使用javamail進行發送郵件,(使用QQ,163,新浪郵箱服務器)
  • javaMail學習(三)——使用javaMail給易郵郵賬戶發簡單郵件
  • 使用WinWebMail 簡單搭建一個局域網郵件服務 并 測試
  • 為什么搭建的winmail郵件服務器不能發送Q.Q郵件?
  • 使用 Winmail Server 輕松架設郵件服務器
  • 總結

    以上是生活随笔為你收集整理的【记录】【解决方案】java发邮件错误:Couldn‘t connect to host, port: localhost, 25; timeout -1;易邮SMTP服务器无法启动;的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。