La API del servicio de correo para Java admite la interfaz JavaMail (javax.mail
) para enviar mensajes de correo.
Antes de empezar
Registra tus correos de remitente como remitentes autorizados. Para obtener más información, consulta quién puede enviar correos.
Enviar mensajes de correo
Para enviar mensajes de correo electrónico, usa las clases de JavaMail incluidas en el SDK de App Engine.
Cuando creas una sesión de JavaMail, si no proporcionas ninguna configuración de servidor SMTP, App Engine utiliza el servicio de correo para enviar mensajes. También puedes añadir la configuración SMTP de proveedores de correo de terceros compatibles, como Mailgun, Mailjet o SendGrid.
Sigue estos pasos para enviar un mensaje:
Crea un mensaje con un objeto
Session
de JavaMail.Crea un objeto
MimeMessage
.Para definir el remitente y el destinatario del mensaje, usa la clase
InternetAddress
.Identifica al remitente llamando al método
setFrom()
en el objetoMimeMessage
. Si quieres, puedes proporcionar un nombre personal como cadena en el segundo parámetro.Identifica al destinatario enviando 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 unAddressException
si la dirección de correo parece no ser válida.Para definir una dirección de respuesta, usa el método
setReplyTo()
.Define el contenido del mensaje llamando a los métodos del objeto
MimeMessage
. Define el asunto consetSubject()
y el contenido del cuerpo de texto sin formato consetText()
.Para enviar el mensaje, usa el método estático
send()
de la claseTransport
.
El servicio de correo te permite especificar un conjunto limitado de encabezados en los mensajes de correo salientes. Para obtener más información, consulta Encabezados opcionales que puedes usar.
En el siguiente código de ejemplo se muestra cómo enviar correo:
Las llamadas al servicio de correo son asíncronas y se devuelven inmediatamente. El servicio de correo gestiona el proceso de ponerse en contacto con los servidores de correo de los destinatarios y de entregar el mensaje. Si hay algún problema al enviar el mensaje a algún destinatario o si el servidor de correo de un destinatario devuelve un mensaje de rebote, el mensaje de error se envía al remitente.
Enviar mensajes de varias partes
Puedes enviar mensajes de varias partes, como un mensaje con archivos adjuntos o un mensaje con un cuerpo de texto sin formato y un cuerpo de texto HTML.
Para enviar un mensaje de varias partes, sigue estos pasos:
Crea un objeto
MimeMultipart
para que contenga las partes y, a continuación, crea un objetoMimeBodyPart
para cada archivo adjunto o cuerpo de mensaje alternativo y añádelo al contenedor.'Asigna el contenedor al contenido de
MimeMessage
.
En el siguiente ejemplo de código se muestra cómo enviar un mensaje de varias partes:
Por motivos de seguridad, las partes de los mensajes y los archivos adjuntos deben ser de uno de los varios tipos permitidos, y los nombres de los archivos adjuntos deben terminar en una extensión de nombre de archivo reconocida para el tipo. Para ver una lista de los tipos y las extensiones de nombre de archivo permitidos, consulta Correo con archivos adjuntos.