【记录】【解决方案】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服务器无法启动;相关推荐
- 解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol
java发送邮件时报以下错误信息: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled ...
- Java发邮件-QQ服务器认证
2019独角兽企业重金招聘Python工程师标准>>> Java发邮件的几种方式 JavaMail Commons Email Spring Mail JavaMail是Java提供 ...
- 简易的java发邮件客户端
主要是想熟悉一下jigloo插件的使用,所以做了一个发邮件的小程序,其实调用的都是人家的东西,我们自己只做了最简单的傻瓜操作,每思及此,感觉要学的东西还很多. 本人很懒,搞swing那套东西很不给力, ...
- java发邮件的代码
通过java发送邮件的代码 转载请注明出处:java发邮件的代码 package com.zuidaima.util.mail;import java.util.Properties;import j ...
- oracle发邮件时间不对,oracle 发邮件错误
oracle 发邮件错误 下面存储过程执行后有错误, create or replace procedure test_mail(msg_subject in varchar2, mes_contex ...
- 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,发送邮 ...
- 执行Hive的查询语句报错:java.lang.IllegalArgumentException: Does not contain a valid host:port authority: loca
好不容易把Hive装完了,结果一执行Hive的查询语句运行MapReduce程序立马报错... log详细信息如下: Job running in-process (local Hadoop) Had ...
- 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 ...
- windows 安装RabbitMQ 遇到 epmd error for host xxx: address (cannot connect to host/port)错误解决方法
我在windows上安装RabbitMQ后在运行rabbitmq-server之后报错: "WARNING: Using RABBITMQ_ADVANCED_CONFIG_FILE: C:\ ...
- Linux环境邮件服务报错:Couldn‘t connect to host, port: smtp.qq.com, 25; timeout -1;
在Windows环境下邮件服务能够正常使用,但是在Linux环境下,邮件服务报错,无法发送邮件. 具体报错信息如下: com.sun.mail.util.MailConnectException: C ...
最新文章
- 百度关键词研究: 应避免的5个错误!
- 这一招将 Numpy 加速 700 倍!!!
- mui 使用LocalStore记住用户密码方法
- VMware vSphere@cloudstack基本功能测试报告
- 成功解决python\ops\seq2seq.py TypeError: ms_error() got an unexpected keyword argument 'logits'
- 原核表达常见问题解答
- Qt编写数据可视化大屏界面电子看板12-数据库采集
- P2680 运输计划
- es6 export 命令
- C语言二叉树之二叉链表
- 隔离 docker 容器中的用户-------分享链接
- IDEA 打包docker镜像详解
- 5G无线技术基础自学系列 | 5G信道结构
- 【转】谈一谈今年的移动互联网寒冬
- 计算机图表制作教程,echarts入门教程 5分钟上手制作ECharts图表
- kali-top10-Nmap
- 华三防火墙NAT配置CLI
- word文档在保存后消失,如何恢复?
- 江西省电子专题大赛考点讲解十:CD40110十进制可逆计数器/锁存器/译码器/驱动器
- 程序员小灰——谷歌面试题之高楼扔鸡蛋问题
热门文章
- python 抓取 快代理- 国内高匿代理 IP
- extjs中的flex_Extjs 教程
- 用java实现学生成绩管理系统(附有详细代码)
- 【文献翻译】基于CVSS的IT系统网络安全风险定量评估方法-A Quantitative CVSS-Based Cyber Security Risk Assessment Methodology
- PMP考试扫盲:超详细的PMP考试小白攻略,必看篇
- 制作一个html文件 效果如下图,PSD网页切图制作HTML教程1
- 老男孩Linux笔记,运维/后端/服务器领域
- 计算机应用基础试卷分析报告,计算机应用基础试卷分析.pdf
- Python scrapy 将mmjpg图片下载到本地
- java 权重 分配_一种按权重分配的Java算法