My favorites | Português | Sign in

Visão geral da API de mensagens em Java

Os aplicativos do Google App Engine podem enviar mensagens de e-mail em nome dos administradores do aplicativo e em nome de usuários com Contas do Google. O Google Apps usa o serviço de mensagens para enviar mensagens de e-mail.

Como enviar e-mails com a API JavaMail

A API do serviço de mensagens em Java suporta a interface JavaMail (javax.mail) para o envio de mensagens de e-mail.

Ao criar uma sessão JavaMail, não é necessário fornecer as configurações do servidor SMTP. O Google App Engine sempre usará o serviço de mensagens para enviar mensagens.

import java.util.Properties;
import javax.mail.AddressException;
import javax.mail.InternetAddress;
import javax.mail.MessagingException;
import javax.mail.MimeMessage;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;

// ...
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

        String msgBody = "...";

        try {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("admin@example.com"));
            msg.addRecipient(Message.RecipientType.TO,
                             new InternetAddress("user@example.com", "Mr. User"));
            msg.setSubject("Your Example.com account has been activated");
            msg.setText(msgBody);
            Transport.send(msg);
    
        } catch (AddressException e) {
            // ...
        } catch (MessagingException e) {
            // ...
        }

Mensagens de e-mail

O serviço de mensagens pode enviar mensagens de e-mail a um ou mais destinatários. A mensagem contém um assunto, um corpo de texto sem formatação e um corpo em HTML opcional. Também pode conter anexos de arquivos.

Por motivos de segurança, o endereço do remetente de uma mensagem deve ser o endereço de e-mail de um administrador do aplicativo ou o endereço de e-mail da Conta do Google do usuário atual conectado. O endereço de e-mail pode incluir um endereço "responder para", que também deve obedecer a essas restrições.

Se você quiser enviar um e-mail em nome do aplicativo, mas não quiser usar uma Conta do Google pessoal de um administrador como o remetente, poderá criar uma nova Conta do Google para o aplicativo usando qualquer endereço de e-mail válido e adicionar a nova conta como um administrador do aplicativo. Para adicionar uma conta como um administrador, consulte a seção "Desenvolvedores" do Console de administração.

Você pode usar qualquer endereço de e-mail para o destinatário. Um destinatário pode estar no campo "para" ou no campo "cc" da mensagem ou pode ficar oculto no cabeçalho da mensagem (uma "cópia de carbono oculta" ou "cco").

Anexos

Uma mensagem de e-mail pode ser enviada sem nenhum anexo ou com arquivos anexados.

Um anexo tem um nome de arquivo e dados do arquivo. Os dados do arquivo podem ser provenientes de qualquer fonte, como um arquivo de dados do aplicativo ou o armazenamento de dados. O tipo MIME do anexo é determinado pelo nome do arquivo.

Por motivo de segurança, um arquivo anexado a uma mensagem de e-mail deve ser de um dos tipos permitidos e seu nome de arquivo deve terminar com uma extensão que corresponda a esse tipo.

Veja abaixo uma lista de tipos MIME e as extensões de nome de arquivo correspondentes permitidos para arquivos anexos a uma mensagem de e-mail.

Tipo MIMEExtensões de nome de arquivo
image/x-ms-bmpbmp
text/csscss
text/comma-separated-valuescsv
image/gifgif
text/htmlhtm html
image/jpegjpeg jpg jpe
application/pdfpdf
image/pngpng
application/rss+xmlrss
text/plaintext txt asc diff pot
image/tifftiff tif
image/vnd.wap.wbmpwbmp
text/calendarics
text/x-vcardvcf

Envio de e-mail

Quando um aplicativo chama o serviço de mensagens para enviar uma mensagem, esta é colocada em uma fila e a chamada retorna imediatamente. O serviço de mensagens usa procedimentos padrão para entrar em contato com cada servidor de e-mail do destinatário, entregando a mensagem e repetindo a tentativa caso não seja possível entrar em contato com o servidor.

Se o serviço de mensagens não puder entregar uma mensagem ou se o servidor de e-mail de um destinatário retornar uma mensagem devolvida (se não houver uma conta para esse endereço nesse sistema), a mensagem de erro será enviada por e-mail para o endereço do remetente da mensagem. O próprio aplicativo não recebe uma notificação sobre o êxito ou falha na entrega.

E-mail e o servidor de desenvolvimento

Quando um aplicativo que está sendo executado no servidor de desenvolvimento chama o serviço de mensagens para enviar uma mensagem, a mensagem é impressa no registro. O servidor de desenvolvimento em Java não envia a mensagem de e-mail.

Cotas e limites

Cada solicitação do serviço de mensagens é computada para a cota de Chamadas da APi de mensagens.

O endereço de e-mail de cada destinatário de uma mensagem de e-mail é computado para a cota Destinatários de e-mail (ajustável). Cada destinatário que seja um administrador do aplicativo também é computado para a cota E-mail para administradores.

Os dados enviados no corpo de uma mensagem de e-mail são computados para as seguintes cotas:

  • Largura de banda de saída (ajustável)
  • Dados enviados no corpo da mensagem

Cada anexo incluído em uma mensagem de e-mail é computado para a cota Anexos enviados.

Os dados enviados como um anexo de uma mensagem de e-mail são computados para as seguintes cotas:

  • Largura de banda de saída (ajustável)
  • Dados enviados como anexos

Para obter mais informações sobre cotas, consulte Quotas (Cotas) e a seção "Quota Details" (Quota Details) do Console de administração.

Além das cotas, os seguintes limites são aplicados ao uso do serviço de mensagens:

Limite Quantidade
tamanho máximo da mensagem, incluindo anexos 1 megabyte
tamanho máximo da mensagem quando um administrador é um destinatário 16 quilobytes