如何解决Java Mail API适用于localhost bu,不适用于Google App引擎
我有一个使用Java Mail API的发送电子邮件逻辑,当我在本地主机上时可以正常工作,但是一旦部署在Google云平台上,电子邮件就会发送到我的servlet,但是再也不会传递。 我是从GoDaddy购买的电子邮件,地址为:xxx@mydomain.com。 在阅读了Google Cloud Platform上的文档并在StackOverflow上找到了一些评论之后,我已经配置了防火墙规则,但似乎没有任何作用允许端口25、465和587上的进出(我知道google不允许端口25上的流量)。 我不想使用诸如sendbird之类的第三方电子邮件发件人...因为我以前使用的是Elastic,并且我不需要第三方电子邮件发件人,所以JavaMail就足够了。 因此,我认为Java邮件对于GCP应该足够了。 谁能帮我吗? 这是我的发送电子邮件逻辑
import java.io.UnsupportedEncodingException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
*
* @author sidibe ibrahim
* Sending email logic
*/
public class EmailSender {
static MessagingException me;
public static boolean sendMail(String from,String password,String message,String to[],String title) throws UnsupportedEncodingException {
String host = "smtpout.secureserver.net";
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host",host);
props.put("mail.smtp.user",from);
props.put("mail.smtp.password",password);
props.put("mail.smtp.host",465);
props.put("mail.smtp.auth","true");
props.put("mail.smtp.ssl.trust","*");
Session session = Session.getDefaultInstance(props,null);
MimeMessage mimeMessage = new MimeMessage(session);
try {
mimeMessage.setFrom(new InternetAddress(from,"xxx"));
InternetAddress[] toAddress = new InternetAddress[to.length];
for (int i = 0; i < to.length; i++) {
toAddress[i] = new InternetAddress(to[i]);
}
for (int i = 0; i < toAddress.length; i++) {
mimeMessage.addRecipient(Message.RecipientType.TO,toAddress[i]);
}
//sdd subject
mimeMessage.setSubject(title);
//set message to mimeMessage
mimeMessage.setText(message,"UTF-8","html");
Transport transport = session.getTransport("smtp");
transport.connect(host,from,password);
transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());
transport.close();
return true;
} catch (MessagingException m) {
me.printstacktrace();
}
return false;
}
}
解决方法
App Engine Mail API (也支持JavaMail)已被弃用。
相反,GCP recommends使用第三方邮件提供商,例如:
编辑
但是,如果您仍然想继续使用过时的解决方案,请参阅article,有关使用Mail API发送电子邮件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。