Appengine не отправляет электронную почту - PullRequest
1 голос
/ 26 декабря 2011

Я пытаюсь использовать API Appengine Mail для отправки почты из моего приложения. Я запускаю приведенный ниже код, который работает нормально без исключений, но на самом деле не отправлено ни одного письма Вот код:

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 является зарегистрированным владельцем приложения (но не администратором биллинга). Глядя на журналы, «готово» печатается, но электронное письмо не отправляется.

Есть идеи?

UPDATE:

Обнаружено, что электронные письма действительно проходят, но находятся в папке спама. Любой способ придать моему приложению больше (репутации), чтобы его не отмечали как спам. Наше приложение рассылает уведомления по электронной почте пользователям, когда что-то изменилось в системе.

1 Ответ

4 голосов
/ 26 декабря 2011

Возможно, ваше письмо помечено как спам, потому что оно было отправлено с другого хоста, я имею в виду, что, возможно, это не домен, связанный с GMail.

В этом случае, чтобы предотвратить его пометку как спам, очень полезно настроить SPF для вашего домена, см. Справку Google: Создание записи SPF . Это помогло мне некоторое время назад

...