A API do serviço de correio para Java suporta a interface JavaMail (javax.mail
) para enviar mensagens de email.
Antes de começar
Registe os seus emails de remetente como remetentes autorizados. Para mais informações, consulte quem pode enviar emails.
Enviar mensagens de email
Para enviar mensagens de email, use as classes JavaMail incluídas no SDK do App Engine.
Quando cria uma sessão JavaMail, se não fornecer nenhuma configuração do servidor SMTP, o App Engine usa o serviço Mail para enviar mensagens. Em alternativa, adicione a configuração SMTP para fornecedores de correio eletrónico de terceiros suportados, como Mailgun, Mailjet ou SendGrid.
Para enviar uma mensagem:
Crie uma mensagem com um objeto JavaMail
Session
.Crie um objeto
MimeMessage
.Para definir o remetente e o destinatário da mensagem, use a classe
InternetAddress
.Identifique o remetente chamando o método
setFrom()
no objetoMimeMessage
. Opcionalmente, pode fornecer um nome pessoal como uma string no segundo parâmetro.Identifique o destinatário transmitindo um tipo de destinatário e um endereço ao método
addRecipient()
. O tipo de destinatário pode serMessage.RecipientType.TO
,Message.RecipientType.CC
ouMessage.RecipientType.BCC
.
O construtor
InternetAddress
gera umAddressException
se o endereço de email parecer inválido.Para definir um endereço "Responder a", use o método
setReplyTo()
.Estabeleça o conteúdo da mensagem chamando métodos no objeto
MimeMessage
. Defina o assunto comsetSubject()
e defina o conteúdo do corpo de texto simples comsetText()
.Para enviar a mensagem, use o método estático
send()
na classeTransport
.
O serviço de correio permite-lhe especificar um conjunto limitado de cabeçalhos em mensagens de email enviadas. Para mais informações, consulte o artigo Cabeçalhos opcionais que pode usar.
O seguinte exemplo de código demonstra como enviar correio:
As chamadas para o serviço de correio são assíncronas e são devolvidas imediatamente. O serviço de correio gere o processo de contacto com os servidores de correio dos destinatários e de entrega da mensagem. Se houver um problema ao enviar a mensagem a qualquer destinatário ou se o servidor de email de um destinatário devolver uma mensagem de "rejeição", a mensagem de erro é enviada ao remetente.
Enviar mensagens multipartes
Pode enviar mensagens multipartes, como uma mensagem com anexos de ficheiros ou uma mensagem com um corpo de mensagem de texto simples e um corpo de mensagem HTML.
Para enviar uma mensagem multipartes:
Crie um objeto
MimeMultipart
para conter as partes e, em seguida, crie um objetoMimeBodyPart
para cada anexo ou corpo da mensagem alternativo e adicione-o ao contentor.'Atribua o contentor ao conteúdo para
MimeMessage
.
O seguinte exemplo de código demonstra como enviar uma mensagem multipartes:
Por motivos de segurança, as partes das mensagens e os anexos têm de ser de um dos vários tipos permitidos, e os nomes de ficheiros dos anexos têm de terminar numa extensão de nome de ficheiro reconhecida para o tipo. Para ver uma lista dos tipos e extensões de nomes de ficheiros permitidos, consulte o artigo Enviar correio com anexos.