我不能用Java程序发送电子邮件

我不能用Java程序发送电子邮件,java,email,jakarta-mail,Java,Email,Jakarta Mail,我试图通过Java发送电子邮件。我使用Maven javax.activation实现了JavaMail Api,但不幸的是,我遇到了以下错误: 线程“main”com.sun.mail.util.MailConnectException中的异常:无法连接到主机,端口:localhost,25;超时-1; 嵌套异常是: java.net.ConnectException:连接被拒绝:连接 在com.sun.mail.smtp.SMTPTransport.openServer上(SMTPTrans

我试图通过Java发送电子邮件。我使用Maven javax.activation实现了JavaMail Api,但不幸的是,我遇到了以下错误:

线程“main”com.sun.mail.util.MailConnectException中的异常:无法连接到主机,端口:localhost,25;超时-1; 嵌套异常是: java.net.ConnectException:连接被拒绝:连接 在com.sun.mail.smtp.SMTPTransport.openServer上(SMTPTransport.java:2209) 在com.sun.mail.smtp.SMTPTransport.protocolConnect上(SMTPTransport.java:740) 在javax.mail.Service.connect(Service.java:366) 在javax.mail.Service.connect(Service.java:246) 在javax.mail.Service.connect(Service.java:195) 在javax.mail.Transport.send0(Transport.java:254) 在javax.mail.Transport.send(Transport.java:124) 在AnhancedKeyLogger.sendMail.sendMail(sendMail.java:32)上 位于AnhancedKeyLogger.Main.sendMail(Main.java:33) 在AnhancedKeyLogger.Main.Main(Main.java:15) 这是我的邮件类:

import javax.mail.*;
导入javax.mail.internet.InternetAddress;
导入javax.mail.internet.mimessage;
导入java.util.Properties;
公共类发送电子邮件{
公共静态void sendMail(字符串recepient)引发MessaginException{
字符串pwd=“xxx”;
字符串地址=“xxx”;
属性p=新属性();
p、 put(“mail.smpt.auth”、“true”);
p、 put(“mail.smpt.starttls.enable”、“true”);
p、 put(“mail.smpt.host”、“smpt.gmail.com”);
p、 put(“mail.smpt.port”、“587”);
会话s=Session.getInstance(p,新验证器(){
@凌驾
受保护的密码身份验证getPasswordAuthentication(){
返回新密码验证(地址,pwd);
}
});
消息m=准备消息(s、地址、收件人);
运输。发送(m);
}
私有静态消息prepareMessage(会话会话、字符串地址、字符串接收)引发MessaginException{
消息m=新的mimessage(会话);
m、 setFrom(新的互联网地址);
m、 setRecipient(Message.RecipientType.TO,新的InternetAddress(Recipient));
m、 设置主体(“测试”);
m、 setText(“测试”);
返回m;
}
}
该方法由外部主类访问


如何修复它?

您必须在smpt.gmail.com中将pt切换到tp

您是否在该主机上运行SMTP服务器?提示:
mail.smpt.auth
(以及所有
mail.smpt
密钥)都有一个重要的键入错误。协议是SMTP。我认为这是gmail中smpt服务器的地址,smpt.gmail.com似乎不正确。也许应该是
smtp.gmail.com
非常感谢您的帮助