Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Envío de correo electrónico sin procesar con Amazon SES API v2
Puede utilizar la SendEmail
operación Amazon SES API v2 con el tipo de contenido especificado raw
para enviar mensajes personalizados a sus destinatarios utilizando el formato de correo electrónico sin procesar.
Acerca de los campos de encabezados de correo electrónico
El Protocolo simple de transferencia de correo (SMTP) especifica cómo se deben enviar los mensajes de correo electrónico mediante la definición del sobre y algunos de sus parámetros, pero no se ocupa del contenido del mensaje. En cambio, el formato de mensaje de Internet (RFC5322
Con la especificación de formato de mensajes de Internet, todos los mensajes de correo electrónico se componen de un encabezado y de un cuerpo. El encabezado se compone de metadatos de mensaje y el cuerpo contiene el mensaje propiamente dicho. Para obtener más información acerca los encabezados y cuerpos de correo electrónico, consulte Formato de correo electrónico y Amazon SES.
Usando MIME
El SMTP protocolo se diseñó originalmente para enviar mensajes de correo electrónico que solo contenían ASCII caracteres de 7 bits. Esta especificación no es SMTP suficiente para codificaciones que no sean de ASCII texto (como Unicode), contenido binario o archivos adjuntos. El estándar de extensiones multipropósito de correo de Internet (MIME) se desarrolló para permitir el envío de muchos otros tipos de contenido mediante. SMTP
El MIME estándar funciona dividiendo el cuerpo del mensaje en varias partes y, a continuación, especificando qué se debe hacer con cada parte. Por ejemplo, una parte del cuerpo de un mensaje de correo electrónico puede ser texto plano, mientras que otra puede serloHTML. Además, MIME permite que los mensajes de correo electrónico contengan uno o más archivos adjuntos. Los destinatarios del mensaje pueden ver los archivos adjuntos desde sus clientes de correo electrónico o pueden guardar los archivos adjuntos.
El encabezado del mensaje y el contenido están separados por una línea en blanco. Cada parte del correo electrónico está separada por un límite, una cadena de caracteres que indica el inicio y el final de cada parte.
El mensaje de varias partes del siguiente ejemplo contiene un texto, una HTML parte y un archivo adjunto. El archivo adjunto se debe colocar justo debajo de los encabezados de archivo adjunto y, por lo general, se codifica en base64
como se muestra en este ejemplo.
From: "Sender Name" <sender@example.com> To: recipient@example.com Subject: Customer service contact info Content-Type: multipart/mixed; boundary="a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a" --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: multipart/alternative; boundary="sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a" --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Please see the attached file for a list of customers to contact. --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable <html> <head></head> <body> <h1>Hello!</h1> <p>Please see the attached file for a list of customers to contact.</p> </body> </html> --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a-- --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/plain; name="customers.txt" Content-Description: customers.txt Content-Disposition: attachment;filename="customers.txt"; creation-date="Sat, 05 Aug 2017 19:35:36 GMT"; Content-Transfer-Encoding: base64 SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENhbmFkYQo5MjM4 OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixVbml0ZWQgU3RhdGVzCjI4OTMs QW5heWEsSXllbmdhcixJbmRpYQ== --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a--
El tipo de contenido del mensaje es multipart/mixed
, lo que indica que el mensaje tiene muchas partes (en este ejemplo, un cuerpo y un archivo adjunto) y el cliente de recepción debe gestionar cada parte por separado.
Anidada en la sección del cuerpo, hay una segunda parte que utiliza el tipo de contenido multipart/alternative
. Este tipo de contenido indica que cada parte contiene versiones alternativas del mismo contenido (en este caso, una versión de texto y una HTML versión). Si el cliente de correo electrónico del destinatario puede mostrar HTML contenido, mostrará la HTML versión del cuerpo del mensaje. Si el cliente de correo electrónico del destinatario no puede mostrar el HTML contenido, mostrará la versión en texto plano del cuerpo del mensaje.
Ambas versiones del mensaje también contendrán un archivo adjunto (en este caso, un archivo de texto breve que contiene los nombres de algunos clientes).
Al anidar una MIME parte dentro de otra, como en este ejemplo, la parte anidada debe usar un boundary
parámetro distinto del boundary
parámetro de la parte principal. Estos límites deben ser cadenas de caracteres únicas. Para definir un límite entre MIME las partes, escriba dos guiones (--) seguidos de la cadena de límite. Al final de una MIME parte, coloque dos guiones al principio y al final de la cadena límite.
nota
Un mensaje no puede tener más de 500 MIME partes.
MIMECodificación
Para mantener la compatibilidad con los sistemas más antiguos, Amazon SES respeta la ASCII limitación de 7 bits SMTP definida en RFC2821
Direcciones de correo electrónico
La cadena de la dirección de correo electrónico debe ser de 7 bits. ASCII Si desea enviar a direcciones de correo electrónico que contengan caracteres Unicode en la parte de dominio de una dirección o bien desde ellas, debe cifrar el dominio utilizando Punycode. Punycode no se permite en la parte local de la dirección de correo electrónico (la parte delante del signo @) ni en el nombre de "remitente descriptivo". Si desea utilizar caracteres Unicode en el nombre «descriptivo de», debe codificar el nombre «descriptivo de» utilizando una sintaxis de MIME palabras codificadas, tal y como se describe en. Envío de correo electrónico sin procesar con Amazon SES API v2 Para obtener más información sobre Punycode, consulte 3492. RFC
nota
Esta regla solo se aplica a las direcciones de correo electrónico que se especifican en el sobre, no a los encabezados del mensaje. Cuando utilizas la SendEmail
operación Amazon SES API v2, las direcciones que especificas en los Destinations
parámetros Source
y definen el remitente y los destinatarios del sobre, respectivamente.
Encabezados de correo electrónico
Para codificar el encabezado de un mensaje, usa la sintaxis de palabras MIME codificadas. MIMELa sintaxis de palabras codificadas utiliza el siguiente formato:
=?
charset
?encoding
?encoded-text
?=
El valor de
puede ser encoding
Q
o B
. Si el valor de encoding es Q
, el valor
debe utilizar la codificación Q. Si el valor de encoding es encoded-text
B
, el valor
debe utilizar la codificación Base64.encoded-text
Por ejemplo, si desea utilizar la cadena “Як ти поживаєш?” en la línea de asunto de un correo electrónico, puede utilizar cualquiera de las siguientes codificaciones:
-
Codificación Q
=?utf-8?Q?=D0=AF=D0=BA_=D1=82=D0=B8_=D0=BF=D0=BE=D0=B6=D0=B8=D0=B2=D0=B0=D1=94=D1=88=3F?=
-
Codificación Base64
=?utf-8?B?0K/QuiDRgtC4INC/0L7QttC40LLQsNGU0Yg/?=
Para obtener más información sobre la codificación Q, consulte RFC2047
Cuerpo del mensaje
Para codificar el cuerpo de un mensaje, puede utilizar la codificación quoted-printable o la codificación Base64. A continuación, utilice el encabezado Content-Transfer-Encoding
para indicar el esquema de codificación que ha utilizado.
Por ejemplo, supongamos que el cuerpo del mensaje contiene el texto siguiente:
१९७२ मे रे टॉमलिंसन ने पहला ई-मेल संदेश भेजा | रे टॉमलिंसन ने ही सर्वप्रथम @ चिन्ह का चयन किया और इन्ही को ईमेल का आविष्कारक माना जाता है
Si opta por codificar este texto con la codificación Base64, en primer lugar, especifique el siguiente encabezado:
Content-Transfer-Encoding: base64
A continuación, en la sección del cuerpo del mensaje, incluya el texto codificado en Base64:
4KWn4KWv4KWt4KWoIOCkruClhyDgpLDgpYcg4KSf4KWJ4KSu4KSy4KS/4KSC4KS44KSoIOCkqOCl hyDgpKrgpLngpLLgpL4g4KSILeCkruClh+CksiDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KS+ IHwg4KSw4KWHIOCkn+ClieCkruCksuCkv+CkguCkuOCkqCDgpKjgpYcg4KS54KWAIOCkuOCksOCl jeCkteCkquCljeCksOCkpeCkriBAIOCkmuCkv+CkqOCljeCkuSDgpJXgpL4g4KSa4KSv4KSoIOCk leCkv+Ckr+CkviDgpJTgpLAg4KSH4KSo4KWN4KS54KWAIOCkleCliyDgpIjgpK7gpYfgpLIg4KSV 4KS+IOCkhuCkteCkv+Ckt+CljeCkleCkvuCksOCklSDgpK7gpL7gpKjgpL4g4KSc4KS+4KSk4KS+ IOCkueCliAo=
nota
En algunos casos, puedes usar los 8 bits Content-Transfer-Encoding
en los mensajes que envíes a través de AmazonSES. Sin embargo, si Amazon SES tiene que realizar algún cambio en tus mensajes (por ejemplo, cuando utilizas el seguimiento de aperturas y clics), es posible que el contenido codificado en 8 bits no aparezca correctamente cuando llegue a las bandejas de entrada de los destinatarios. Por este motivo, debes codificar siempre el contenido que no sea de 7 bits. ASCII
Archivos adjuntos
Para adjuntar un archivo a un correo electrónico, debe codificar el archivo adjunto con la codificación Base64. Los archivos adjuntos suelen colocarse en partes dedicadas al MIME mensaje, que incluyen los siguientes encabezados:
-
Tipo de contenido: el tipo de archivo del archivo adjunto. Los siguientes son ejemplos de declaraciones de tipo de MIME contenido comunes:
-
Archivo de texto sin formato:
Content-Type: text/plain; name="sample.txt"
-
Documento de Microsoft Word:
Content-Type: application/msword; name="document.docx"
-
JPGimagen —
Content-Type: image/jpeg; name="photo.jpeg"
-
-
Disposición de contenido: especifica cómo debe gestionar el contenido el cliente de correo electrónico del destinatario. Para los archivos adjuntos, este valor es
Content-Disposition: attachment
. -
Codificación de transferencia de contenido: el esquema que se utilizó para codificar el archivo adjunto. Para los archivos adjuntos, este valor casi siempre es
base64
. -
El archivo adjunto codificado: debe codificar el archivo adjunto real e incluirlo en el cuerpo, debajo de los encabezados de archivo adjunto, como se muestra en el ejemplo.
Amazon SES acepta los tipos de archivos más comunes. Para ver una lista de los tipos de archivos que Amazon SES no acepta, consultaTipos de archivos adjuntos SES no admitidos por Amazon.
Envío de correo electrónico sin procesar con Amazon SES API v2
Amazon SES API v2 proporciona la SendEmail
acción, que te permite redactar y enviar un mensaje de correo electrónico en el formato que especifiques al configurar el tipo de contenido como simple, sin procesar o con plantillas. Para obtener una descripción completa, consulte SendEmail
. El siguiente ejemplo especificará el tipo de contenido raw
para enviar un mensaje utilizando el formato de correo electrónico sin procesar.
nota
Para obtener consejos sobre cómo incrementar la velocidad de envío de correo electrónico al realizar varias llamadas a SendEmail
, consulte Aumento del rendimiento con Amazon SES.
El cuerpo del mensaje debe contener un mensaje de correo electrónico sin procesar con el formato correcto, con campos de encabezado adecuados y con codificación del cuerpo del mensaje. Aunque es posible construir el mensaje sin procesar manualmente dentro de una aplicación, es mucho más sencillo hacerlo a través de las bibliotecas de correo existentes.