我在使用Google的SMTP服务器发送电子邮件时遇到问题。我找了一个解决方案,但我还没找到。所以这是代码。
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
...
...
...
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)
{
Properties props = new Properties();
props.put("true", "mail.smtp.auth");
props.put("true","mail.smtp.starttls.enable");
props.put("smtp.gmail.com", "mail.smtp.host");
props.put("587", "mail.smtp.port");
Session sess=Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication("myemail@gmail.com", "mypassword");
}
}
);
try{
Message message= new MimeMessage(sess);
message.setFrom(new InternetAddress("myemail@gmail.com"));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("myemail@gmail.com"));
message.setSubject("message");
message.setText("text");
Transport.send(message);
JOptionPane.showMessageDialog(null, "Sent!");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
每次按下按钮,都会显示此错误:
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect
我已尝试过3个端口:25,465,587,但它总是给我这个错误。我甚至为端口25制定了防火墙设置的新规则,但这似乎并没有成功。有什么想法我做错了什么?冬眠会导致问题吗?因为我在这个项目中使用它。另外,我已经安装了mysql。
答案 0 :(得分:0)
您的程序正在尝试连接到本地端口,这就是它失败的原因。如果您的列表是真实代码,那么您在props.set语句中得到了键和值。