Google app engine Java邮件API在本地主机上工作,而不是在google应用程序引擎上工作

Google app engine Java邮件API在本地主机上工作,而不是在google应用程序引擎上工作,google-app-engine,google-cloud-platform,Google App Engine,Google Cloud Platform,我有一个使用Java Mail API发送电子邮件的逻辑,当我在localhost上时,它工作得很好,但一旦部署到google云平台上,电子邮件就会发送到我的servlet,但从未发送过。 我从GoDaddy那里买了这封电子邮件,所以它是:xxx@mydomain.com. 在阅读了谷歌云平台上的文档和这里关于StackOverflow的一些评论之后,我已经配置了防火墙规则,但似乎没有任何东西可以允许在端口25、465和587上进行进出(我知道谷歌不允许在端口25上进行通信)。 我不想使用像se

我有一个使用Java Mail API发送电子邮件的逻辑,当我在localhost上时,它工作得很好,但一旦部署到google云平台上,电子邮件就会发送到我的servlet,但从未发送过。 我从GoDaddy那里买了这封电子邮件,所以它是:xxx@mydomain.com. 在阅读了谷歌云平台上的文档和这里关于StackOverflow的一些评论之后,我已经配置了防火墙规则,但似乎没有任何东西可以允许在端口25、465和587上进行进出(我知道谷歌不允许在端口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;
    }
}

导入java.io.UnsupportedEncodingException;
导入java.util.Properties;
导入javax.mail.Message;
导入javax.mail.MessaginException;
导入javax.mail.Session;
导入javax.mail.Transport;
导入javax.mail.internet.InternetAddress;
导入javax.mail.internet.mimessage;
/**
*
*@作者sidibe ibrahim
*发送电子邮件逻辑
*/
公共类电子邮件发送者{
静态消息异常me;
公共静态布尔sendMail(字符串发件人、字符串密码、字符串消息、字符串收件人[]、字符串标题)引发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=新MimeMessage(会话);
试一试{
mimeMessage.setFrom(新的互联网地址(来自“xxx”);
InternetAddress[]toAddress=新的InternetAddress[to.length];
for(int i=0;i
应用程序引擎(也支持)已被弃用

相反,GCP需要使用第三方邮件提供商,例如:


编辑


但是,如果您仍想继续使用过时的解决方案,请参阅关于使用邮件API发送电子邮件的说明。

谢谢您的回答Denis,我已经尝试过这个方法,但它不起作用,我认为这些步骤旨在接收电子邮件,我想要的是从我的应用程序发送电子邮件,例如,在付款后向购买了东西的客户发送确认电子邮件。你是对的-这是接收电子邮件的文章。我已经更新了我的答案,链接到发送电子邮件的答案。请记住,由于此解决方案已被弃用,GCP并不正式支持它,您可能会在使用它时遇到一些不一致的情况。