La API de servicio de correo electrónico para Java es compatible con la interfaz JavaMail (javax.mail
) a fin de enviar mensajes de correo electrónico.
Antes de comenzar
Registra los correos electrónicos de tus remitentes como remitentes autorizados. Para obtener más información, consulta quién puede enviar correos electrónicos.
Envía correos electrónicos
Para poder enviar mensajes de correo electrónico, usa las clases de JavaMail incluidas en el SDK de App Engine.
Si no provees una configuración del servidor SMTP cuando creas una sesión de JavaMail, App Engine usa el servicio de correo para enviar mensajes. Como alternativa, puedes agregar la configuración SMTP para los proveedores de correo electrónico de terceros compatibles, como Mailgun, Mailjet o SendGrid.
Para enviar un mensaje, sigue estos pasos:
Crea un mensaje mediante un objeto
Session
de JavaMail.Crea un objeto
MimeMessage
.Para configurar el remitente y el destinatario del mensaje, usa la clase
InternetAddress
.Identifica al remitente con una llamada al método
setFrom()
en el objetoMimeMessage
. De forma opcional, puedes proveer un nombre personal como una string en el segundo parámetro.Puedes identificar al destinatario si pasas un tipo de destinatario y una dirección al método
addRecipient()
. El tipo de destinatario puede serMessage.RecipientType.TO
,Message.RecipientType.CC
oMessage.RecipientType.BCC
.
El constructor
InternetAddress
genera unaAddressException
si parece que la dirección de correo electrónico no es válida.Si quieres configurar una dirección de respuesta, usa el método
setReplyTo()
.Establece el contenido del mensaje mediante una llamada a los métodos en el objeto
MimeMessage
. Establece el asunto mediantesetSubject()
y el contenido del cuerpo con texto simple mediantesetText()
.Para enviar el mensaje, usa el método estático
send()
en la claseTransport
.
El servicio de correo te permite especificar un conjunto limitado de encabezados en mensajes de correos electrónicos salientes. Para obtener más información, consulta Encabezados opcionales que puedes usar.
En el siguiente código de muestra, se indica cómo enviar un correo:
Las llamadas al servicio de correo son asíncronas y se muestran de forma inmediata. El servicio de correo administra el proceso de contactar a los servidores de correos del destinatario y de entregar el mensaje. Si surge algún problema al momento de enviar el mensaje a cualquier destinatario, o si el servidor de correo del destinatario muestra un mensaje "rebote", el remitente recibe el mensaje de error.
Envía mensajes de varias partes
Puedes enviar mensajes de varias partes, como un mensaje con archivos adjuntos o un mensaje con el cuerpo del mensaje con texto sin formato y un cuerpo del mensaje HTML.
Sigue estos pasos para enviar un mensaje de varias partes:
Crea un objeto
MimeMultipart
que contenga las partes, luego crea un objetoMimeBodyPart
para cada adjunto o cuerpo del mensaje alternativo y agrégalo al contenedor.Asigna el contenedor al contenido para
MimeMessage
.
En el código de muestra a continuación, se indica cómo enviar un mensaje de varias partes:
Por razones de seguridad, las partes de los mensajes y sus adjuntos deben ser uno de los varios tipos permitidos y los nombres de los archivos adjuntos deben finalizar en una extensión de nombre de archivo reconocida para ese tipo. Si quieres obtener una lista de los tipos y extensiones de nombres de archivos permitidos, consulta Correo electrónico con archivos adjuntos.