使用Google的SMTP服务器发送电子邮件

时间:2015-04-13 02:18:04

标签: email java mysql smtp

我在使用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。

1 个答案:

答案 0 :(得分:0)

您的程序正在尝试连接到本地端口,这就是它失败的原因。如果您的列表是真实代码,那么您在props.set语句中得到了键和值。