Criar, enviar ou receber e-mails em 4D é feito manipulando um objeto de e-Mail
.
Objetosemail
são criados ao receber e-mails através de uma função de classe transporter:
- IMAP -
.getMail()
e.getMails()
funções para obter e-mails de um servidor IMAP - POP3 -
.getMail()
função para receber um e-mail de um servidor POP3.
Você também pode criar um objeto em branco
Você envia objetos e-Mail
usando a função SMTP .send()
.
MIME Converter do MIME
e Converter para comandos MIME
podem ser usados para converter objetos Email
a partir de ou para conteúdos MME.
Objeto Email
Objetos de e-mail fornecem as seguintes propriedades:
4D segue a especificação JMAP para formatar o objeto de e-mail.
.attachments : Collection email source addresse(s) of the email |
.bcc : Text .bcc : Object .bcc : Collection Destinatário de correio electrónico oculto de Cópia Cega de Carbono (BCC) endereço(s) do correio electrónico |
.bodyStructure : Object Objeto EmailBodyPart ou seja a estrutura MIME completa do corpo da mensagem (opcional) |
.bodyValues : Object Objeto EmailBodyValue contendo um objeto para cada <partID> of bodyStructure (opcional) |
.cc : Text .cc : Object .cc : Collection Cópia (CC) para outros endereços de email |
.comments : Text um cabeçalho de comentários adicionais. |
.from : Text .from : Object .from : Collection endereços originais do email |
.headers : Collection coleção de objectos EmailHeader , na ordem em que aparecem na mensagem |
.htmlBody : Text Representação HTML da mensagem de correio electrónico (o charset padrão é UTF-8) (opcional, apenas SMTP) |
.id : Text ID única do servidor IMAP |
.inReplyTo : Text identificador(es) da(s) mensagem original para a qual a mensagem atual é uma resposta |
.keywords : Object conjunto de palavras-chave como um objecto, onde cada nome de propriedade é uma palavra-chave e cada valor é verdadeiro |
.messageId : Text cabeçalho identificador da mensagem ("message-id") |
.receivedAt : Texto carimbo temporal da chegada do e-mail ao servidor IMAP no formato ISO 8601 UTC (ex: 2020-09-13T16:11:53Z) |
.references : Collection Recolha de todas as mensagens-ids de mensagens da cadeia de resposta anterior |
.replyTo : Text .replyTo : Object .replyTo : Collection endereços para respostas |
.sendAt : Text Timestamp de email em formato ISO 8601 UTC |
.sender : Text .sender : Object .sender : Collection primary recipient addresse(s) of the email |
.size : Integer tamanho (expresso em bytes) do objecto Email devolvido pelo servidor IMAP |
.subject : Text descrição do tema |
.textBody : Text Representação em texto simples da mensagem de correio electrónico (o conjunto de caracteres padrão é UTF-8) (opcional, apenas SMTP) |
.to : Text .to : Object .to : Collection converts a MIME document into a valid email object |
Endereços de Email
Todas as propriedades que contêm endereços de e-mail (de
, cc
, bcc
, a
, remetente
, , responde
) aceita um valor de texto, objeto ou tipo de coleção.
Text
- e-mail único: "somebody@domain.com"
- um nome+email: "Somebody somebody@domain.com"
- vários emails: "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.
Gesttão do corpo do correio eletrônico
As propriedades textBody
e htmlBody
são usadas apenas com o SMTP. send() permitir 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
and bodyValues
are used for SMTP when the Email object is built from a MIME document, e.g. when generated by the MAIL Convert from MIME
command. Neste caso, tanto as propriedades bodyStructure
e bodyValues
devem ser passados juntas, e não é recomendado usar o 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
The .sender
property contains the email source addresse(s) of the email.
Objetos de anexo são definidos através do comando MAIL New attachment
. Objetos de anexos têm propriedades e funções específicas .
.bcc
.bcc : Text
.bcc : Object
.bcc : Collection
Descrição
A propriedade .bcc
contém a Destinatário de correio electrónico oculto de Cópia Cega de Carbono (BCC) endereço(s) do correio electrónico.
.bodyStructure
.bodyStructure : Object
Descrição
A propriedade .bodyStructure
contém a Objeto EmailBodyPart ou seja a estrutura MIME completa do corpo da mensagem (opcional). .
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 idioma, conforme definido em RFC3282, no campo de cabeçalho Content-Language da parte, se presente. |
location | Text | URI, como definido em RFC2557, no campo de cabeçalho Content-Location da parte, se estiver presente. |
subParts | Uma coleção de objetos | Partes do corpo de cada filho (coleção de objetosEmailBodyPart ) |
headers | Uma coleção de objetos | Lista de todos os campos de cabeçalho da parte, na ordem que eles aparecem na mensagem (coleção de objetos de EmailHeader , ver a propriedade cabeçalhos) |
.bodyValues
.bodyValues : Object
Descrição
A propriedade .bodyValues
contém a Objeto EmailBodyValue contendo um objeto para cada <partID> of bodyStructure
(opcional). .
O objeto .bodyValues
contém as seguintes propriedades:
Propriedade | Tipo | Valor |
---|---|---|
partID.value | text | Valor da parte do corpo |
partID.isEncodingProblem | boolean | Verdadeiro 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 a Cópia (CC) para outros endereços de email.
.comments
.comments : Text
Descrição
A propriedade .comments
contém a um cabeçalho de comentários adicionais..
Os comentários só aparecem na seção de cabeçalho da mensagem (mantendo o corpo da mensagem intocado).
Para requisitos de formatação específicos, consulte o RFC#5322.
.from
.from : Text
.from : Object
.from : Collection
Descrição
A propriedade .from
contém a endereços originais do email.
Cada e-mail que você envia possui tanto o remetente quanto de endereços:
- 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 a coleção de objectos EmailHeader
, na ordem em que aparecem na mensagem. Esta propriedade permite que usuários adicionem cabeçalhos estendidos (registrados) ou definidos pelo usuário (não registrados, começando com cabeçalhos "X").
Se uma propriedade de objeto
EmailHeader
define 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 de cabeçalho como definido em 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 correio electrónico (o charset padrão é UTF-8) (opcional, apenas SMTP). .
.id
.id : Text
Descrição
Medidor IMAP apenas.
A propriedade .id
contém a ID única do servidor IMAP.
.inReplyTo
.inReplyTo : Text
Descrição
A propriedade .inReplyTo
contém a identificador(es) da(s) mensagem original para a qual a mensagem atual é uma resposta.
Para requisitos de formatação específicos, consulte o RFC#5322.
.keywords
.keywords : Object
Descrição
A propriedade .keywords
contém a conjunto de palavras-chave como um objecto, onde cada nome de propriedade é uma palavra-chave e cada valor é verdadeiro.
Esta propriedade é o cabeçalho das "palavras-chave" (veja 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 a cabeçalho identificador da 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 : Texto
Descrição
Medidor IMAP apenas.
A propriedade .receivedAt
contém o carimbo temporal da chegada do e-mail ao servidor IMAP no formato ISO 8601 UTC (ex: 2020-09-13T16:11:53Z).
.references
.references : Collection
Descrição
A propriedade .references
contém o Recolha de todas as mensagens-ids de mensagens da cadeia de resposta anterior.
Para requisitos de formatação específicos, consulte o RFC#5322.
.replyTo
.replyTo : Text
.replyTo : Object
.replyTo : Collection
Descrição
A propriedade .replyTo
contém o endereços para respostas.
.sendAt
.sendAt : Text
Descrição
A propriedade .sendAt
contém o Timestamp de email em formato ISO 8601 UTC.
.sender
.sender : Text
.sender : Object
.sender : Collection
Descrição
The .to
property contains the primary recipient addresse(s) of the email.
Cada email que você enviar possui tanto o remetente quanto dos endereços:
- 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
Medidor IMAP apenas.
A propriedade .size
contém o tamanho (expresso em bytes) do objecto Email devolvido pelo servidor IMAP.
.subject
.subject : Text
Descrição
A propriedade .subject
contém o descrição do tema.
.textBody
.textBody : Text
Descrição
A propriedade .textBody
contém o Representação em texto simples da mensagem de correio electrónico (o conjunto de caracteres padrão é UTF-8) (opcional, apenas SMTP). .
.to
.to : Text
.to : Object
.to : Collection
Descrição
The MAIL Convert from MIME
command converts a MIME document into a valid email object.
MAIL Convert from MIME
Histórico
Release | Mudanças |
---|---|
18 | Adicionado |
Converter MIME( mime : Blob ) : Objeto
MAIL Converter de MIME( mime : Texto : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
mime | Blob, Text | -> | E-mail no MIME |
Resultados | Object | <- | Objeto Email |
|
Descrição
O comando MAIL Convert from MIME
converte um documento MIME num objecto de correio electrónico válido.
4D segue a especificação JMAP para formatar o objeto de e-mail.
Passe mime um documento MIME válido para converter. Pode ser fornecido por qualquer servidor de correio ou aplicativo. Você pode passar um BLOB ou um parâmetro mime. Se o MIME vier de um arquivo, é recomendado utilizar um parâmetro BLOB para evitar problemas relacionados ao conjunto de caracteres e conversões de quebra de linha.
Objeto devolvido
Objeto Email.
Exemplo 1
Se quiser carregar um modelo de e-mail salvo como MIME em um documento de texto e enviar um e-mail:
var $mime: Blob
var $mail;$server;$transporter;$status: Object
$mime:=File("/PACKAGE/Mails/templateMail.txt").getContent())
$mail:=MAIL Convert from MIME($mime)
$mail.to:="smith@mail.com"
$mail.subject:="Hello world"
$server:=New object
$server.host:="smtp.gmail.com"
$server.port:=465
$server.user:="test@gmail.com"
$server.password:="XXXX"
$transporter:=SMTP New transporter($server)
$status:=$transporter.send($mail)
Exemplo 2
Neste exemplo, você envia diretamente um documento 4D Write Pro contendo fotos:
var $mime: Blob
var $email;$server;$transporter;$status: Object
// Mime export of the 4D Write Pro document WP EXPORT VARIABLE(WParea;$mime;wk mime html)
// convert 4D Write Pro Mime variable in mail object
$email:=MAIL Convert from MIME($mime)
// Fill your mail object headers
$email.subject:="4D Write Pro HTML body"
$email.from:="YourEmail@gmail.com"
$email.to:="RecipientEmail@mail.com"
$server:=New object
$server.host:="smtp.gmail.com"
$server.port:=465
$server.user:="YourEmail@gmail.com"
$server.password:="XXXX"
$transporter:=SMTP New transporter($server)
$status:=$transporter.send($email)
MAIL Convert to MIME
Histórico
Release | Mudanças |
---|---|
17 R4 | Adicionado |
17 R5 | Modificado |
MAIL Convert to MIME( mail : Object { ; options : Object } ) : Text
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Object | -> | Objeto Email | |
options | Object | -> | Opções de codificação e Charset |
Resultados | Text | <- | Email objeto convertido em MIME |
|
Descrição
O comando MAIL Convert to MIME
converte um objecto e-mail em texto MIME. Este comando é chamado internamente por SMTP_transporter.send( para formatar o objeto de e-mail antes de enviá-lo. Ele pode ser usado para analisar o formato MIME do objeto.
No e-mail, passe o conteúdo e os detalhes da estrutura do e-mail para converter. Isso inclui informações como os endereços de e-mail (remetente e destinatário(s)), a própria mensagem e o tipo de exibição para a mensagem.
4D segue a especificação JMAP para formatar o objeto de e-mail.
Em opções, você pode definir um conjunto de caracteres e uma configuração de codificação específica para o e-mail. As seguintes propriedades estão disponíveis:
Propriedade | Tipo | Descrição | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
headerCharset | Text | Charset e codificação usados para as seguintes partes do e-mail: assunto, nomes de arquivos de anexo e atributos de nome de e-mail. Valores possíveis:
| |||||||||||||||
bodyCharset | Text | Charset e codificação usados para o conteúdo html e corpo do e-mail. Valores possíveis: o mesmo que para headerCharset (ver acima) |
Se o parâmetro opções for omitido, a configuração do modo de email UTF8 é usada para cabeçalho e partes do corpo.
Exemplo
var $mail: Objeto
var $mime: Texto
$mail:=Novo objeto
// Criação de um e-mail
$mail. rom:="tsales@massmarket.com"
$mail.subject:="Liquidação Terrificada! This week only!"
$mail.textBody:="Text format email"
$mail.htmlBody:="<html><body>HTML format email</body></html>"
$mail.to:=New collection
$mail.to.push(New object ("email";"noreply@4d.com"))
$mail.to.push(New object ("email";"test@4d.com"))
// transform the mail object in MIME
$mime:=MAIL Convert to MIME($mail)
// Contents of $mime:
// MIME-Version: 1.0
// Date: Thu, 11 Oct 2018 15:42:25 GMT
// Message-ID: <7CA5D25B2B5E0047A36F2E8CB30362E2>
// Sender: tsales@massmarket.com
// From: tsales@massmarket.com
// To: noreply@4d.com
// To: test@4d.com
// Content-Type: multipart/alternative; boundary="E0AE5773D5E95245BBBD80DD0687E218"
// Subject: Terrific Sale! This week only!
//
// --E0AE5773D5E95245BBBD80DD0687E218
// Content-Type: text/plain; charset="UTF-8"
// Content-Transfer-Encoding: quoted-printable
//
// Text format email
// --E0AE5773D5E95245BBBD80DD0687E218
// Content-Type: text/html; charset="UTF-8"
// Content-Transfer-Encoding: quoted-printable
//
// <html><body>HTML format email</body></html>
// --E0AE5773D5E95245BBBD80DD0687E218--