Email Java邮件在云服务器中不工作
我有一个在GlassFish服务器上运行的JavaEEWeb应用程序。我已经编写了以下代码通过应用程序发送电子邮件。 当我在家用电脑和笔记本电脑上测试应用程序时,它会立即发送电子邮件。当我在谷歌云服务器上运行同一个应用程序时,它会出现超时异常。可能的原因是什么Email Java邮件在云服务器中不工作,email,jakarta-ee,google-cloud-platform,gmail,jakarta-mail,Email,Jakarta Ee,Google Cloud Platform,Gmail,Jakarta Mail,我有一个在GlassFish服务器上运行的JavaEEWeb应用程序。我已经编写了以下代码通过应用程序发送电子邮件。 当我在家用电脑和笔记本电脑上测试应用程序时,它会立即发送电子邮件。当我在谷歌云服务器上运行同一个应用程序时,它会出现超时异常。可能的原因是什么 package com.divudi.ejb; import java.util.Properties; import javax.ejb.Schedule; import javax.ejb.Stateless; import jav
package com.divudi.ejb;
import java.util.Properties;
import javax.ejb.Schedule;
import javax.ejb.Stateless;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
@Stateless
public class EmailManagerEjb {
final static String USERNAME = "mygmailaccount@gmail.com";
final static String PASSWORD = "mygmailpassword";
static Session session = null;
public void sendEmail1(String toEmail, String messageHeading, String messageBody) {
Properties props = new Properties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
if (session == null) {
session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USERNAME, PASSWORD);
}
});
}
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(USERNAME));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(toEmail));
message.setSubject(messageHeading);
message.setText(messageBody);
Transport.send(message);
System.out.println("Send Successfully");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
在阅读了stdunbar的评论之后,我为google云计算引擎的端口25、465和587创建了防火墙例外 然后一切都开始运转良好 现在电子邮件已成功发送
如果您使用的是App Engine,则可以使用。或者,如果您使用的是Compute Engine,那么我们建议您使用另一种邮件服务,如:
中第一节中的。Google Compute Engine不允许在端口25、465和587上进行出站连接。简言之,你不能用Gmail做到这一点,你需要这样做。