问题描述

  1. 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
  1. 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服务器上就有了刚刚添加的用户信息,也就是说

  1. 服务器上分配给用户存储,用于存储mail内容。
  2. 用户可以通过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();}}
}

查看结果,运行成功。

参考:

  1. Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
  2. javaMail学习(三)——使用javaMail给易邮邮账户发简单邮件
  3. 使用WinWebMail 简单搭建一个局域网邮件服务 并 测试
  4. 为什么搭建的winmail邮件服务器不能发送Q.Q邮件?
  5. 使用 Winmail Server 轻松架设邮件服务器

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

  1. 解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol

    java发送邮件时报以下错误信息: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled ...

  2. Java发邮件-QQ服务器认证

    2019独角兽企业重金招聘Python工程师标准>>> Java发邮件的几种方式 JavaMail Commons Email Spring Mail JavaMail是Java提供 ...

  3. 简易的java发邮件客户端

    主要是想熟悉一下jigloo插件的使用,所以做了一个发邮件的小程序,其实调用的都是人家的东西,我们自己只做了最简单的傻瓜操作,每思及此,感觉要学的东西还很多. 本人很懒,搞swing那套东西很不给力, ...

  4. java发邮件的代码

    通过java发送邮件的代码 转载请注明出处:java发邮件的代码 package com.zuidaima.util.mail;import java.util.Properties;import j ...

  5. oracle发邮件时间不对,oracle 发邮件错误

    oracle 发邮件错误 下面存储过程执行后有错误, create or replace procedure test_mail(msg_subject in varchar2, mes_contex ...

  6. java邮件发送报错: Couldn‘t connect to host, port: smtp.exmail.qq.com, 25; timeout -1

    java邮件发送报错: Couldn't connect to host, port: smtp.exmail.qq.com, 25; timeout -1 1,发送邮件代码 2,报错原因 1,发送邮 ...

  7. 执行Hive的查询语句报错:java.lang.IllegalArgumentException: Does not contain a valid host:port authority: loca

    好不容易把Hive装完了,结果一执行Hive的查询语句运行MapReduce程序立马报错... log详细信息如下: Job running in-process (local Hadoop) Had ...

  8. java.lang.IllegalArgumentException: Does not contain a valid host:port authority: ignorethis

    执行Hive语句运行MapReduce程序时突然出现这样的异常: Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce ...

  9. windows 安装RabbitMQ 遇到 epmd error for host xxx: address (cannot connect to host/port)错误解决方法

    我在windows上安装RabbitMQ后在运行rabbitmq-server之后报错: "WARNING: Using RABBITMQ_ADVANCED_CONFIG_FILE: C:\ ...

  10. Linux环境邮件服务报错:Couldn‘t connect to host, port: smtp.qq.com, 25; timeout -1;

    在Windows环境下邮件服务能够正常使用,但是在Linux环境下,邮件服务报错,无法发送邮件. 具体报错信息如下: com.sun.mail.util.MailConnectException: C ...

最新文章

  1. 百度关键词研究: 应避免的5个错误!
  2. 这一招将 Numpy 加速 700 倍!!!
  3. mui 使用LocalStore记住用户密码方法
  4. VMware vSphere@cloudstack基本功能测试报告
  5. 成功解决python\ops\seq2seq.py TypeError: ms_error() got an unexpected keyword argument 'logits'
  6. 原核表达常见问题解答
  7. Qt编写数据可视化大屏界面电子看板12-数据库采集
  8. P2680 运输计划
  9. es6 export 命令
  10. C语言二叉树之二叉链表
  11. 隔离 docker 容器中的用户-------分享链接
  12. IDEA 打包docker镜像详解
  13. 5G无线技术基础自学系列 | 5G信道结构
  14. 【转】谈一谈今年的移动互联网寒冬
  15. 计算机图表制作教程,echarts入门教程 5分钟上手制作ECharts图表
  16. kali-top10-Nmap
  17. 华三防火墙NAT配置CLI
  18. word文档在保存后消失,如何恢复?
  19. 江西省电子专题大赛考点讲解十:CD40110十进制可逆计数器/锁存器/译码器/驱动器
  20. 程序员小灰——谷歌面试题之高楼扔鸡蛋问题

热门文章

  1. python 抓取 快代理- 国内高匿代理 IP
  2. extjs中的flex_Extjs 教程
  3. 用java实现学生成绩管理系统(附有详细代码)
  4. 【文献翻译】基于CVSS的IT系统网络安全风险定量评估方法-A Quantitative CVSS-Based Cyber Security Risk Assessment Methodology
  5. PMP考试扫盲:超详细的PMP考试小白攻略,必看篇
  6. 制作一个html文件 效果如下图,PSD网页切图制作HTML教程1
  7. 老男孩Linux笔记,运维/后端/服务器领域
  8. 计算机应用基础试卷分析报告,计算机应用基础试卷分析.pdf
  9. Python scrapy 将mmjpg图片下载到本地
  10. java 权重 分配_一种按权重分配的Java算法