Criar, enviar ou receber e-mails em 4D é feito manipulando um objeto Email.
Os objetos Email são criados ao receber e-mails através de uma função de classe transporter:
- IMAP - funções
.getMail()e.getMails()para obter e-mails de um servidor IMAP - POP3 - Função
.getMail()para obter um e-mail de um servidor POP3.
Você também pode criar um novo objeto
Você envia objetos Email usando a função SMTP .send().
Os comandos MAIL Convert from MIME e MAIL Convert to MIME podem ser usados para converter objetos Email de e para conteúdos MIME.
This class is streamable in binary.
Objeto Email
Objetos de e-mail fornecem as seguintes propriedades:
4D segue a especificação JMAP para formatar o objeto Email.
| .attachments : Collection coleção de objeto(s) 4D.MailAttachment |
| .bcc : Text .bcc : Object .bcc : Collection Blind Carbon Copy (BCC) direções do e-mail |
| .bodyStructure : Object EmailBodyPart, ou seja, a estrutura MIME completa do corpo da mensagem (opcional) |
| .bodyValues : Object EmailBodyValue, que contém um objeto para cada <partID> de bodyStructure (opcional) |
| .cc : Text .cc : Object .cc : Collection endereço(s) e-mail adicionais em Cópia de Carbon (CC) do e-mail |
| .comments : Text cabeçalho de comentários adicional |
| .from : Text .from : Object .from : Collection a(s) endereço(es) de origem do e-mail |
| .headers : Collection de objetos EmailHeader, na ordem em que aparecem na mensagem |
| .comments : Text cabeçalho de comentários adicional |
| .id : Text ID exclusivo do servidor IMAP |
| .inReplyTo : Text identificador(es) de mensagem da(s) mensagem(ns) original(is) à(s) qual(is) a mensagem atual é uma resposta |
| .keywords : Object conjunto de palavras-chave como um objeto, em que cada nome de propriedade é uma palavra-chave e cada valor é true |
| .messageId : Text cabeçalho de identificador de mensagem ("message-id") |
| .receivedAt : Text carimbo de data/hora da chegada do e-mail no servidor IMAP no formato ISO 8601 UTC (por exemplo: 2020-09-13T16:11:53Z) |
| .references : Collection coleção de todos os IDs de mensagens na cadeia de resposta anterior |
| .replyTo : Text .replyTo : Object .replyTo : Collection endereços para respostas |
| .sendAt : Text Carimbo de e-mail no formato UTC ISO 8601 |
| .sender : Text .sender : Object .sender : Collection endereços fonte do e-mail |
| .size : Integer (expresso em bytes) do objeto Email retornado pelo servidor IMAP |
| .subject : Text descrição do tópico |
| .textBody : Text representação em texto simples da mensagem de e-mail (conjunto de caracteres padrão é UTF-8) (opcional, somente SMTP) |
| .to : Text .to : Object .to : Collection os endereços dos destinatários primários de e-mail |
Endereços de Email
Todas as propriedades que contêm endereços de e-mail (from, cc, bcc, to, sender, replyTo) aceitam um valor de tipo texto, objeto ou coleção.
Text
- e-mail único: "somebody@domain.com"
- nome de exibição único + e-mail: "Somebody somebody@domain.com"
- vários e-mails: "Somebody somebody@domain.com,me@home.org"
Object
Um objeto com duas propriedades:
| Propriedade | Tipo | Descrição |
|---|---|---|
| name | Text | Nome de exibição (pode ser nulo) |
| Text | Endereço de Email |
Collection
Uma coleção de objetos de endereço.
Gestão do corpo do correio eletrônico
As propriedades textBody e htmlBody são usadas somente com a função SMTP.send() para permitir o envio de e-mails simples. Quando ambas as propriedades são preenchidas, o tipo de conteúdo MIME multiparte/alternativo é utilizada. O cliente de email deve reconhecer a parte multiparte/alternativa e exibir a parte do texto ou html conforme necessário.
bodyStructure e bodyValues são usados para SMTP quando o objeto Email é criado a partir de um documento MIME, por exemplo, quando gerado pelo comando MAIL Convert from MIME. Nesse caso, as propriedades bodyStructure e bodyValues devem ser passadas juntas, e não é recomendável usar textBody e htmlBody.
Exemplo de objetos bodyStructure e 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
Descrição
A propriedade .attachments contém uma coleção de objeto(s) 4D.MailAttachment.
Os objetos anexo têm propriedades e funções específicas. Os objetos de anexo são definidos por meio do comando MAIL New attachment.
.bcc
.bcc : Text
.bcc : Object
.bcc : Collection
Descrição
A propriedade .bcc contém o destinatário oculto do e-mail Blind Carbon Copy (BCC) direções do e-mail.
.bodyStructure
.bodyStructure : Object
Descrição
A propriedade .bodyStructure contém o objeto EmailBodyPart, ou seja, a estrutura MIME completa do corpo da mensagem (opcional). Consulte a seção Gerenciamento do corpo.
O objeto .bodyStructure contém as seguintes propriedades:
| Propriedade | Tipo | Valor |
|---|---|---|
| partID | Text | Identifica a parte de maneira única dentro do email |
| type | Text | (obrigatório) Valor do campo de cabeçalho Content-Type da parte |
| charset | Text | Valor do parâmetro charset do campo de cabeçalho Content-Type |
| encoding | Text | Se isEncodingProblem=true, o valor de Content-Transfer-Encoding é adicionado (por padrão indefinido) |
| disposition | Text | Valor do campo de cabeçalho Conteúdo - Disposição da parte |
| Línguagem | Coleção de textos | Lista de tags de linguagem, conforme definido em RFC3282, no campo de cabeçalho Content-Language da parte, se presente. |
| location | Text | URI, conforme definido em RFC2557, no campo de cabeçalho Content-Location da parte, se presente. |
| subParts | Uma coleção de objetos | Partes do corpo de cada filho (coleção de objetos EmailBodyPart) |
| headers | Uma coleção de objetos | Lista de todos os campos de cabeçalho da parte, na ordem em que eles aparecem na mensagem (coleção de objetos EmailHeader, ver propriedade headers) |
.bodyValues
.bodyValues : Object
Descrição
A propriedade .bodyValues contém o objeto EmailBodyValue, que contém um objeto para cada <partID> de bodyStructure (opcional). Consulte a seção Gerenciamento do corpo.
O objeto .bodyValues contém as seguintes propriedades:
| Propriedade | Tipo | Valor |
|---|---|---|
| partID.value | text | Valor da parte do corpo |
| partID.isEncodingProblem | boolean | True se seções malformadas forem encontradas durante a decodificação do conjunto de charset, ou charset desconhecido, ou codificação de conteúdo desconhecido. Padrão é falso |
.cc
.cc : Text
.cc : Object
.cc : Collection
Descrição
A propriedade .cc contém os endereço(s) e-mail adicionais em Cópia de Carbon (CC) do e-mail.
.comments
.comments : Text
Descrição
A propriedade .comments contém um cabeçalho de comentários adicional.
Os comentários só aparecem na seção de cabeçalho da mensagem (mantendo o corpo da mensagem intocado).
Para requisitos específicos de formatação, consulte a RFC#5322.
.from
.from : Text
.from : Object
.from : Collection
Descrição
A propriedade .from contém o a(s) endereço(es) de origem do e-mail.
Cada e-mail que você envia tem os endereços sender e from:
- o domínio do remetente é o que o servidor de e-mail de recebimento recebe ao abrir a sessão,
- o endereço a partir é o que o(s) destinatário(s) verá(s).
Para uma melhor capacidade de entrega, é recomendado usar o mesmo endereço de e para o remetente.
.headers
.headers : Collection
Descrição
A propriedade .headers contém uma coleção de objetos EmailHeader, na ordem em que aparecem na mensagem. .
Se uma propriedade de objeto
EmailHeaderdefine um cabeçalho como "from" ou "cc" que já está definida como uma propriedade no nível de correio, a propriedadeEmailHeaderé ignorada.
Cada objeto da coleção de cabeçalhos pode conter as propriedades abaixo:
| Propriedade | Tipo | Valor |
|---|---|---|
| [].name | text | (obrigatório) Nome do campo cabeçalho, conforme definido na RFC#5322. Caso seja nulo ou indefinido, o campo cabeçalho não será adicionado ao cabeçalho MIME. |
| [].value | text | Valores do campo de cabeçalho conforme definido em RFC#5322 |
.htmlBody
.htmlBody : Text
Descrição
A propriedade .htmlBody contém a representação HTML da mensagem de e-mail (o conjunto de caracteres padrão é UTF-8) (opcional, somente SMTP). Consulte a seção Gerenciamento do corpo.
.id
.id : Text
Descrição
IMAP transporter unicamente.
A propriedade .id contém o ID exclusivo do servidor IMAP.
.inReplyTo
.inReplyTo : Text
Descrição
A propriedade .inReplyTo contém o(s) identificador(es) de mensagem da(s) mensagem(ns) original(is) à(s) qual(is) a mensagem atual é uma resposta.
Para requisitos específicos de formatação, consulte a RFC#5322.
.keywords
.keywords : Object
Descrição
A propriedade .keywords contém um conjunto de palavras-chave como um objeto, em que cada nome de propriedade é uma palavra-chave e cada valor é true.
Essa propriedade é o cabeçalho "keywords" (consulte RFC#4021).
| Propriedade | Tipo | Valor |
|---|---|---|
| .<keyword> | boolean | Palavra-chave a definir (valor deve ser verdadeiro) |
Palavra-chave reservada.
- $draft - Indica que uma mensagem é um rascunho
- $seen - Indica uma mensagem que foi lida
- $flagged - Indica uma mensagem que requer atenção especial (por exemplo, Urgent)
- $answered - Indica uma mensagem que foi respondida
- $deleted - Indica uma mensagem para deletar
Exemplo
$mail.keywords["$flagged"]:=True
$mail.keywords["4d"]:=True
.messageId
.messageId : Text
Descrição
A propriedade .messageId contém um cabeçalho de identificador de mensagem ("message-id").
Este cabeçalho geralmente é "lettersOrNumbers@domainname", por exemplo, "abcdef.123456@4d.com". Este ID exclusivo é usado em particular em fóruns ou listas públicas de e-mail. Em geral, os servidores de email adicionam automaticamente este cabeçalho às mensagens que enviam.
.receivedAt
.receivedAt : Text
Descrição
IMAP transporter unicamente.
A propriedade .receivedAt contém o carimbo de data/hora da chegada do e-mail no servidor IMAP no formato ISO 8601 UTC (por exemplo: 2020-09-13T16:11:53Z).
.references
.references : Collection
Descrição
A propriedade .references contém a coleção de todos os IDs de mensagens na cadeia de resposta anterior.
Para requisitos específicos de formatação, consulte a RFC#5322.
.replyTo
.replyTo : Text
.replyTo : Object
.replyTo : Collection
Descrição
A propriedade .replyTo contém os endereços para respostas.
.sendAt
.sendAt : Text
Descrição
A propriedade .sendAt contém o Carimbo de e-mail no formato UTC ISO 8601.
.sender
.sender : Text
.sender : Object
.sender : Collection
Descrição
A propriedade .sender contém os endereços fonte do e-mail.
Cada e-mail que você envia tem os endereços sender e from:
- o domínio do remetente é o que o servidor de e-mail de recebimento recebe ao abrir a sessão,
- o endereço a partir é o que o(s) destinatário(s) verá(s).
Para uma melhor capacidade de entrega, é recomendado usar o mesmo endereço de e para o remetente.
.size
.size : Integer
Descrição
IMAP transporter unicamente.
A propriedade .size contém o tamanho (expresso em bytes) do objeto Email retornado pelo servidor IMAP.
.subject
.subject : Text
Descrição
A propriedade .subject contém a descrição do tópico.
.textBody
.textBody : Text
Descrição
A propriedade .textBody contém a representação em texto simples da mensagem de e-mail (conjunto de caracteres padrão é UTF-8) (opcional, somente SMTP). Consulte a seção Gerenciamento do corpo.
.to
.to : Text
.to : Object
.to : Collection
Descrição
A propriedade .to contém os endereços dos destinatários primários de e-mail.