【发布时间】:2020-12-02 21:19:27
【问题描述】:
我正在尝试在 eclipse 中使用 javamail 通过 gmail 发送电子邮件。每次我得到 javax.mail.MessagingException
例外
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false
javax.mail.MessagingException: Could not connect to SMTP host:
smtp.gmail.com, port: 587;
nested exception is:
java.net.ConnectException: Connection timed out: connect
代码
package org.itc.utility;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.itc.model.User;
public class SendEmail {
public User sendingEmail(User user)
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", 587);
props.put("mail.smtp.socketFactory.port", 587);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.transport.protocol", "smtp");
Session mailSession = null;
mailSession = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("<yogeshvbhat@gmail.com>", "<zc516z918>");
}
});
try {
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
message.setSubject("Sample Subject");
message.setFrom(new InternetAddress("yogeshvbhat@gmail.com"));
String []to = new String[]{"yogeshyvb@gmail.com"};
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to[0]));
String body = "Sample text";
message.setContent(body,"text/html");
transport.connect();
transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO));
transport.close();
} catch (Exception exception) {
System.out.println(exception);
}
return user;
}
}
每次跳过 try 块时,我都会遇到异常。有什么帮助吗?
【问题讨论】:
-
检查您的服务器防火墙设置。
-
@EleazarEnrique,防火墙已禁用
标签: java email jakarta-mail