La creación, el envío o la recepción de correos electrónicos en 4D se realiza manejando un objeto Email
.
Objetos Email
se crean cuando se reciben correos a través de una función de clase transporter:
- IMAP - funciones
.getMail()
y.getMails()
para obtener los correos electrónicos de un servidor IMAP - POP3 - función
.getMail()
para obtener un correo electrónico de un servidor POP3.
También puede crear un nuevo objeto
Los objetos Email
se envían utilizando la función SMTP .send()
.
Los comandos MAIL Convert from MIME
y MAIL Convert to MIME
pueden utilizarse para convertir objetos Email
a y desde contenidos MIME.
Objeto Email
Los objetos Email ofrecen las siguientes propiedades:
4D sigue la especificación JMAP para formatear el objeto Email.
.attachments : Collection colección de objetos 4D.MailAttachment |
.bcc : Text .bcc : Object .bcc : Collection destinatario del correo electrónico oculto Blind Carbon Copy (BCC) dirección(es) del correo electrónico |
.bodyStructure : Object objeto EmailBodyPart, es decir, la estructura MIME completa del cuerpo del mensaje (opcional) |
.bodyValues : Object objeto EmailBodyValue, que contiene un objeto para cada <partID> de bodyStructure (opcional) |
.cc : Text .cc : Object .cc : Collection destinatario adicional del correo electrónico Copia de carbón (CC) dirección(es) del correo electrónico |
.comments : Text encabezado de comentarios adicionales |
.from : Text .from : Object .from : Collection dirección(es) de origen del correo electrónico |
.headers : Collection colección de objetos EmailHeader , en el orden en que aparecen en el mensaje |
.htmlBody : Text representación HTML del mensaje de correo electrónico (el conjunto de caracteres por defecto es UTF-8) (opcional, sólo SMTP) |
.id : Text ID único del servidor IMAP |
.inReplyTo : Text identificador(es) del mensaje original al que el mensaje actual es respuesta |
.keywords : Object conjunto de palabras clave como un objeto, donde cada nombre de propiedad es una palabra clave y cada valor es true |
.messageId : Text encabezado del identificador del mensaje ("message-id") |
.receivedAt : Text marca de tiempo de la llegada del correo electrónico al servidor IMAP en formato ISO 8601 UTC (por ejemplo: 2020-09-13T16:11:53Z) |
.references: Collection Colección de todos los mensajes-id de los mensajes en la cadena de respuesta anterior |
.replyTo : Text .replyTo : Object .replyTo : Collection dirección(es) para las respuestas |
.sendAt : Text Marca de tiempo del correo electrónico en formato ISO 8601 UTC |
.sender : Text .sender : Object .sender : Collection dirección(es) fuente del correo electrónico |
.size : Integer tamaño (expresado en bytes) del objeto Email devuelto por el servidor IMAP |
.subject : Text descripción del tema |
.textBody : Text Representación en texto plano del mensaje de correo electrónico (el conjunto de caracteres por defecto es UTF-8) (opcional, sólo SMTP) |
.to : Text .to : Object .to : Collection dirección(es) destinatario primario del correo electrónico |
Direcciones de correo electrónico
Todas las propiedades que contienen direcciones de correo electrónico (from
, cc
, bcc
, to
, sender
, replyTo
) aceptan un valor de tipo texto, objeto o colección.
Text
- correo electrónico único: "somebody@domain.com"
- un nombre+email: "Somebody somebody@domain.com"
- combinación de varios emails: "Somebody somebody@domain.com,me@home.org"
Object
Un objeto con dos propiedades:
Propiedad | Tipo | Descripción |
---|---|---|
name | Text | Nombre a mostrar (puede ser null) |
Text | Correo electrónico |
Collection
Una colección de objetos dirección.
Gestión del cuerpo del correo electrónico
Las propiedades textBody
y htmlBodye>
sólo se utilizan con la función SMTP.send() para permitir el envío de correos sencillos. Cuando se llenan ambas propiedades, se utiliza el tipo MIME content-type multipart/alternative. El cliente de correo electrónico debería entonces reconocer la parte multipart/alternative y mostrar la parte texto o html según sea necesario.
bodyStructure
y bodyValues
se utilizan para SMTP cuando el objeto Email se construye a partir de un documento MIME, por ejemplo, cuando se genera mediante el comando MAIL Convert from MIME
. En este caso, las propiedades bodyStructure
y bodyValues
deben pasarse juntas, y no se recomienda utilizar textBody
y htmlBody
.
Ejemplo de objetos bodyStructure y bodyValues
"bodyStructure": {
"type": "multipart/mixed",
"subParts": [
{
"partId": "p0001",
"type": "text/plain"
},
{
"partId": "p0002",
"type": "text/html"
}
]
},
"bodyValues": {
"p0001": {
"value": "I have the most brilliant plan. Let me tell you all about it."
},
"p0002": {
"value": "<!DOCTYPE html><html><head><title></title><style type=\"text/css\">div{font-size:16px}</style></head><body><div>I have the most brilliant plan. Let me tell you all about it.</div></body></html>"
}
}
.attachments
.attachments : Collection
Descripción
La propiedad .attachments
contiene un colección de objetos 4D.MailAttachment
.
Los objetos Attachment (adjuntos) se definen mediante el comando MAIL New attachment
. Los objetos adjuntos tienen propiedades y funciones específicas.
.bcc
.bcc : Text
.bcc : Object
.bcc : Collection
Descripción
La propiedad .bcc
contiene el destinatario del correo electrónico oculto Blind Carbon Copy (BCC) dirección(es) del correo electrónico.
.bodyStructure
.bodyStructure : Object
Descripción
La propiedad .bodyStructure
contiene el objeto EmailBodyPart, es decir, la estructura MIME completa del cuerpo del mensaje (opcional). .
El objeto .bodyStructure
contiene las siguientes propiedades:
Propiedad | Tipo | Valor |
---|---|---|
partID | Text | Identifica la parte de manera única dentro del correo electrónico |
type | Text | (obligatorio) Valor del campo del encabezado Content-Type de la parte |
charset | Text | Valor del parámetro charset del campo del encabezado Content-Type |
encoding | Text | Si isEncodingProblem=true , se añade el valor Content-Transfer-Encoding (por defecto indefinido) |
disposition | Text | Valor del campo del encabezado Content-Disposition de la parte |
lenguaje | Colección de textos | Lista de etiquetas de lenguaje, como se define en la RFC3282, en el campo del encabezado Content-Language de la parte, si está presente. |
location | Text | URI, como se define en la RFC2557, en el campo del encabezado Content-Location de la parte, si está presente. |
subParts | Colección de objetos | Partes del cuerpo de cada hijo (colección de objetos EmailBodyPart) |
headers | Colección de objetos | Lista de todos los campos del encabezado de la parte, en el orden en que aparecen en el mensaje (colección de objetos EmailHeader, ver la propiedad headers) |
.bodyValues
.bodyValues : Object
Descripción
La propiedad .bodyValues
contiene el objeto EmailBodyValue, que contiene un objeto para cada <partID> de bodyStructure
(opcional). .
El objeto .bodyValues
contiene las siguientes propiedades:
Propiedad | Tipo | Valor |
---|---|---|
partID.value | text | Valor de la parte del cuerpo |
partID.isEncodingProblem | boolean | True si se encuentran secciones malformadas al decodificar el conjunto de caracteres, o el conjunto de caracteres desconocido, o la codificación de transferencia de contenido desconocida. Falso por defecto |
.cc
.cc : Text
.cc : Object
.cc : Collection
Descripción
La propiedad .cc
contiene el destinatario adicional del correo electrónico Copia de carbón (CC) dirección(es) del correo electrónico.
.comments
.comments : Text
Descripción
La propiedad .comments<
contiene un encabezado de comentarios adicionales.
Los comentarios sólo aparecen en la sección del encabezado del mensaje (manteniendo el cuerpo del mensaje intacto).
Para conocer los requisitos específicos de formato, consulte la RFC#5322.
.from
.from : Text
.from : Object
.from : Collection
Descripción
La propiedad .from
contiene la(s) dirección(es) de origen del correo electrónico.
Cada email que se envía tiene las direcciones sender y from:
- el dominio sender es el que obtiene el servidor de recepción del email al abrir la sesión,
- la dirección from es lo que verán los destinatarios.
Para mejorar la entregabilidad, se recomienda utilizar las mismas direcciones para from y sender.
.headers
.headers : Collection
Descripción
La propiedad .headers
contiene una colección de objetos EmailHeader
, en el orden en que aparecen en el mensaje. Esta propiedad permite a los usuarios añadir encabezados extendidos (registrados) o definidos por el usuario (no registrados, que comienzan por "X").
Si una propiedad del objeto
EmailHeader
define un encabezado como "from" o "cc" que ya está definido como una propiedad a nivel de correo, la propiedadEmailHeader
se ignora.
Cada objeto de la colección de encabezados puede contener las siguientes propiedades:
Propiedad | Tipo | Valor |
---|---|---|
[].name | text | (obligatorio) Nombre del campo de encabezado según se define en RFC#5322. Si es null o indefinido, el campo encabezado no se agrega al encabezado MIME. |
[].value | text | Valores de los campos encabezado definidos en RFC#5322 |
.htmlBody
.htmlBody : Text
Descripción
La propiedad .htmlBody
contiene la representación HTML del mensaje de correo electrónico (el conjunto de caracteres por defecto es UTF-8) (opcional, sólo SMTP). .
.id
.id : Text
Descripción
IMAP transporter únicamente.
La propiedad .id
contiene el ID único del servidor IMAP.
.inReplyTo
.inReplyTo : Text