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