Jakarta ee javax.mail.MessaginException:无法连接到SMTP主机:SMTP.gmail.com,端口:25;

Jakarta ee javax.mail.MessaginException:无法连接到SMTP主机:SMTP.gmail.com,端口:25;,jakarta-ee,Jakarta Ee,我用来发送简单邮件的代码 import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; import javax.activation.DataHandler; import javax.activation.FileDataSource; public class SendMailUsingAuthentication { private static final Str

我用来发送简单邮件的代码

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;

public class SendMailUsingAuthentication
{

  private static final String SMTP_HOST_NAME = "smtp.gmail.com";
  private static final String SMTP_AUTH_USER = "myemail@gmail.com";
  private static final String SMTP_AUTH_PWD  = "mypassword";

  public static void main(String args[]) throws Exception
  {

  }

  public void postMail( String recipients[ ], String subject,String message , String from) throws MessagingException
  {
    try {
        boolean debug = false;

        Properties props = new Properties();
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");
        Authenticator auth = new SMTPAuthenticator();
        Session session = Session.getDefaultInstance(props, auth);
        session.setDebug(debug);

        Message msg = new MimeMessage(session);

        InternetAddress addressFrom = new InternetAddress(from);
        msg.setFrom(addressFrom);
        InternetAddress[] addressTo = new InternetAddress[recipients.length];
        for (int i = 0; i < recipients.length; i++) {
            addressTo[i] = new InternetAddress(recipients[i]);
        }
        msg.setRecipients(Message.RecipientType.TO, addressTo);

        msg.setSubject(subject);

        msg.setContent(message, "text/plain");

        Transport.send(msg);

    } 
    catch (Throwable e) 
    {
        e.printStackTrace();
    }
 }
/**
* SimpleAuthenticator is used to do simple authentication
* when the SMTP server requires it.
*/
private class SMTPAuthenticator extends javax.mail.Authenticator
{
    public PasswordAuthentication getPasswordAuthentication()
    {
        String username = SMTP_AUTH_USER;
        String password = SMTP_AUTH_PWD;
        return new PasswordAuthentication(username, password);
    }
}
}

听起来像是防火墙问题(防火墙会自动删除不允许的数据包,这就是为什么会出现连接超时的原因)

你能试试吗

H:\> telnet smtp.gmail.com 25
Connecting To smtp.gmail.com...Could not open connection to the host, on port 25
: Connect failed

在您的服务器上,查看您是否获得连接?(我在这里的防火墙后面,不允许连接到gmail)

在jboss中运行时,请使用
run.bat-b0.0.0
检查您的运行是否正常


如果不尝试,它应该可以正常工作。

也许这有帮助:也许你是对的…尝试了连接…但是连接超时了…
telnet:connect to address 74.125.157.108:connection Timed out
这是一个无法检测到的问题。如果我没有看到这篇文章,我永远不会知道。非常有用。。
H:\> telnet smtp.gmail.com 25
Connecting To smtp.gmail.com...Could not open connection to the host, on port 25
: Connect failed