我正在尝试使用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是该应用的注册所有者(但不是结算管理员)。查看日志,打印“完成”但不发送电子邮件。
有什么想法吗?
更新:
发现电子邮件实际上是通过但是在垃圾邮件文件夹中。任何方式可以让我的应用更多(声誉)不被标记为垃圾邮件。我们的应用程序会在系统发生变化时向用户发送通知电子邮件。
答案 0 :(得分:4)
也许您将电子邮件标记为垃圾邮件,因为它是从不同的主机发送的,我的意思是,它可能不是GMail连接的域。
在这种情况下,为防止将其标记为垃圾邮件,为您的域配置SPF非常有用,请参阅Google帮助:Creating an SPF record。它前段时间给了我很多帮助