我正在尝试使用 Appengine Mail API 从我的应用程序发送邮件。我正在运行下面的代码,它执行得很好,没有异常,但实际上没有发送邮件。这是代码:
public static void sendNotificationEmail(String subject, String message, String emailAddress) {
System.err.println("Sending mail: " + emailAddress);
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("a@b.com", "Name"));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress));
msg.setSubject(subject);
msg.setText(message);
Transport.send(msg);
System.err.println("done");
}
catch (Exception e) {
System.err.println(e);
}
}
a@b.com 是该应用程序的注册所有者(但不是计费管理员)。查看日志,打印了“完成”但没有发送电子邮件。
有什么想法吗?
更新:
发现电子邮件实际上是通过但在垃圾邮件文件夹中。有什么方法可以让我的应用程序更多(声誉)不被标记为垃圾邮件。当系统发生变化时,我们的应用会向用户发送通知电子邮件。
最佳答案
也许您的电子邮件被标记为垃圾邮件,因为它是从不同的主机发送的,我的意思是它可能不是 GMail 连接的域。
在这种情况下,为了防止它被标记为垃圾邮件,配置SPF 非常有帮助。对于您的域,请参阅谷歌帮助:Creating an SPF record .前段时间对我有帮助
关于java - Appengine 不发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633121/