Como receber notificações de rejeição

Para receber notificações de rejeição de e-mail, configure o aplicativo para ativá-las e processe a notificação de entrada nele.

Como configurar seu aplicativo para notificação de devolução de e-mail

Por padrão, os aplicativos não recebem notificações de devolução de e-mail que não pôde ser entregue. Para ativar o serviço de notificação de devolução de entrada, modifique os arquivos de configuração appengine-web.xml e web.xml do aplicativo.

Modifique appengine-web.xml adicionando uma seção inbound-services para ativar o serviço de devolução de entrada:

Java 8

<inbound-services>
  <!-- Used to handle incoming mail. -->
  <service>mail</service>
  <!-- Used to handle bounced mail notifications. -->
  <service>mail_bounce</service>
</inbound-services>

Java 7

<inbound-services>
  <!-- Used to handle incoming mail. -->
  <service>mail</service>
  <!-- Used to handle bounced mail notifications. -->
  <service>mail_bounce</service>
</inbound-services>

Modifique o web.xml mapeando o URL de devolução /_ah/bounce para seu servlet de processamento de devoluções da seguinte maneira:

Java 8

<servlet>
  <servlet-name>bouncehandler</servlet-name>
  <servlet-class>com.example.appengine.mail.BounceHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>bouncehandler</servlet-name>
  <url-pattern>/_ah/bounce</url-pattern>
</servlet-mapping>
<security-constraint>
  <web-resource-collection>
    <web-resource-name>bounce</web-resource-name>
    <url-pattern>/_ah/bounce</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
</security-constraint>

Java 7

<servlet>
  <servlet-name>bouncehandler</servlet-name>
  <servlet-class>com.example.appengine.mail.BounceHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>bouncehandler</servlet-name>
  <url-pattern>/_ah/bounce</url-pattern>
</servlet-mapping>
<security-constraint>
  <web-resource-collection>
    <web-resource-name>bounce</web-resource-name>
    <url-pattern>/_ah/bounce</url-pattern>
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
</security-constraint>

Como processar notificações de rejeição

A JavaMail API inclui a classe BounceNotificationParser para analisar as notificações de devolução de entrada, como mostrado aqui:

Java 8

import com.google.appengine.api.mail.BounceNotification;
import com.google.appengine.api.mail.BounceNotificationParser;

import java.io.IOException;
import java.util.logging.Logger;
import javax.mail.MessagingException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BounceHandlerServlet extends HttpServlet {

  private static final Logger log = Logger.getLogger(BounceHandlerServlet.class.getName());

  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    try {
      BounceNotification bounce = BounceNotificationParser.parse(req);
      log.warning("Bounced email notification.");
      // The following data is available in a BounceNotification object
      // bounce.getOriginal().getFrom()
      // bounce.getOriginal().getTo()
      // bounce.getOriginal().getSubject()
      // bounce.getOriginal().getText()
      // bounce.getNotification().getFrom()
      // bounce.getNotification().getTo()
      // bounce.getNotification().getSubject()
      // bounce.getNotification().getText()
      // ...
    } catch (MessagingException e) {
    // ...
    }
  }
}

Java 7


import com.google.appengine.api.mail.BounceNotification;
import com.google.appengine.api.mail.BounceNotificationParser;
import java.io.IOException;
import java.util.logging.Logger;
import javax.mail.MessagingException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BounceHandlerServlet extends HttpServlet {

  private static final Logger log = Logger.getLogger(BounceHandlerServlet.class.getName());

  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    try {
      BounceNotification bounce = BounceNotificationParser.parse(req);
      log.warning("Bounced email notification.");
      // The following data is available in a BounceNotification object
      // bounce.getOriginal().getFrom()
      // bounce.getOriginal().getTo()
      // bounce.getOriginal().getSubject()
      // bounce.getOriginal().getText()
      // bounce.getNotification().getFrom()
      // bounce.getNotification().getTo()
      // bounce.getNotification().getSubject()
      // bounce.getNotification().getText()
      // ...
    } catch (MessagingException e) {
    // ...
    }
  }
}
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Java 8