Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v18.4
SMTP_transporter.send( )
|
SMTP_transporter.send ( email ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
Objeto |
![]() |
Email a enviar | ||||||
Resultado | Objeto |
![]() |
Estado SMTP | |||||
O método SMTP_transporter.send( ) envia a mensagem eMail ao servidor SMTP definido no objeto transporter e retorna um estado de objeto .
Nota: O objeto transporter já deve ter sido criado usando o comando SMTP New transporter.
Em eMail, passe um objeto email válido para enviar. As propriedades de origem (de onde vem o correio eletrônico) e de destino (um ou mais destinatários) devem ser incluídos, as propriedades restantes são opcionais. As propriedades compatíveis são:
Propriedade | Tipo | Descrição | |
from | Texto | Objeto | Coleção(*) | Endereços de origem (**) | |
cc | Texto | Objeto | Coleção(*) | Cópia (CC). Destinatários adicionais de correio eletrônico | |
bcc | Texto | Objeto | Coleção(*) | Copia invisível (BCC). Destinatarios de correio eletrônico ocultos | |
to | Texto | Objeto | Coleção(*) | Destinatarios primários | |
sender | Texto | Objeto | Coleção(*) | Endereços email de origem(**) | |
replyTo | Texto | Objeto | Coleção(*) | Endereços para as respostas | |
subject | Texto | Descrição do tema | |
textBody | Texto | Texto plano de email (a codificação padrão é UTF-8)(***) | |
htmlBody | Texto | Representação HTML de email (a codificação padrão é UTF-8)(***) | |
sendAt | Texto | Marca de tempo de email (UTCDate) | |
attachments | Coleção | Coleção de objets attachment, ver MAIL New attachment | |
messageId | Texto | cabeçalho de identificador de mensagem ("message-id"). Geralmente "lettersOrNumbers@domainname", por exemplo, "abcdef.123456@4d.com". Esta identificação única se utiliza em particular em fóruns ou listas de correio públicas. Em geral, os servidores de correio agregam automaticamente este cabeçalho às mensagens que envíam. | |
inReplyTo | Texto | Identificadore de mensagem das mensagens originais aos que a mensagem atual é uma resposta (****). | |
references | Coleção de texto | Coleção de todos os identificadores de mensagem das mensagens na cadeia de resposta anterior (****). | |
keywords | Objeto | cabeçalho "keywords". Contém um conjunto de palavras chaves como um objeto, onde cada nome de propriedade é uma palavra chave e cada valor é verdadeiro. Ver RFC#4021. | |
[ ].<keyword> | Booleano | Palavra chave a definir (o valor deve ser true). Ex: $mail.keywords["$flagged"]:=True | |
comments | Texto | cabeçalho de comentários adicionais. Os comentários só aparecem na seção do cabeçalho da mensagem (mantenndo o cuerpo da mensagem intacto) (****). | |
headers | Coleção de objetos | Coleção de objetos EmailHeader, na ordem em que aparecem na mensagem. Permite aos usuários agregar cabeçalhos estendidos (registrados) ou cabeçalhos definidos pelo usuário (não registrados, começando com "X"). Nota: se uma propriedade de objeto EmailHeader define um cabeçalho como "from" ou "cc" que já está estabelecido como uma propriedade no nível de correio, a propriedade EmailHeader é ignorada. | |
[ ].name | Texto | (orligatório) Nome de campo de cabeçalho como se define em RFC#5322. Se for nulo ou não definido, o campo de cabeçalho não é agregado ao cabeçalho MIME. | |
[ ].value | Texto | Nome de campo de cabeçalho como se define em RFC#5322 |
Nota: os campos de cabeçalho que começam com "Content-" NÃO devem ser especificadas no objeto mail.
As propriedades adicionais abaixo são usadas quando o objeto mail é construido a partir de um documento MIME por exemplo quando gerados pelo comando MAIL Convert from MIME. Neste caso, tanto as propriedades bodyStructure quanto bodyValues devem ser passadas juntas, e não é recomendado usar htmlBody e textBody.
bodyStructure | Object | (optional) Estrutura Full MIME do corpo da mensagem (objeto EmailBodyPart) | |
partID | Text | Identifica uma parte unicamente dentro do email | |
type | Text | (mandatory) Valor do cabeçalho Content-Type da parte | |
charset | Text | Valor do parâmetro charset parameter do campo cabeçalho Content-Type | |
encoding | Text | se isEncodingProblem=true, o valor de Content-Transfer-Encoding é adicionado (como padrão é indefinido) | |
disposition | Text | Valor do campo cabeçalho Content-Disposition da parte | |
language | Collection of texts | Lista de tags de linguagem, como definidas em RFC3282, no campo cabeçalho Content-Language da parte, se presente. | |
location | Text | URI, como definida em RFC2557, no campo cabeçalho Content-Location da parte, se presente. | |
subParts | Collection of objects | Partes do corpo para cada child (coleção de objetos EmailBodyPart) | |
headers | Collection of objects | Lista de todos os campos cabeçalhos na parte, na ordem em que aparecem na mensagem (coleção de objetos EmailHeader objects, ver propriedade cabeçalho) | |
bodyValues | Object | (opcional) objeto EmailBodyValue, contendo um objeto para cada partID da bodyStructure | |
<partID>.value | Text | Valor da parte body | |
<partID>.isEncodingProblem | Boolean | True se seções malformadas forem encontradas enquanto se decodifica o charset, ou charset desconhecido, ou conteúdo de transferência-codificação desconhecido. False como padrão |
"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>"
}
}
(*) Todas as propriedades que contenham endereços de correio eletrônico (from, cc, bcc, to, sender, replyTo) aceitam um valor de texto, objeto ou tipo de coleção.
Propriedade | Tipo | Descrição |
name | Texto | Nome a mostrar (pode ser nulo) |
Texto | Endereço de correio eletrônico |
(**) Cada correio eletrônico que envie tem ambos os endereços sender e from:
(***) Se textBody e htmlBody estão cheios, é utilizada a multiparte/alternativa de tipo de conteúdo MIME. O cliente email deve reconhecer a parte multiparte/alternativa e mostrar a parte de texto ou a parte html segundo seja necessário. É recomendado que estas propriedades sejam omitidas se bodyStructure e bodyValues forem usados.
(****) Para necessidades específicas de formatação, consulte RFC#5322.
Objeto Devolvido
SMTP_transporter.send( ) devolve um objeto que descreve o estado SMTP da operação. Este objeto pode conter as propriedades abaixo:
Propriedade | Tipo | Descrição |
success | Booleano | True se a operação de envio for exitosa, False do contrário |
code | Número | Código devolvido pelo servidor SMTP |
message | Texto | Mensagem devolvida pelo servidor SMTP |
Nota: para obter informação sobre os códigos de estado SMTP, vá a esta página.
Manejo de erros
No caso de um problema não relacionado ao processamento SMTP (por exemplo uma propriedade obrigatória falta no email), 4D gera um erro que pode interceptar usando um método instalado pelo comando ON ERR CALL. Use o comando GET LAST ERROR STACK para informação sobre o erro.
Em caso de um problema não relacionado com o processamento SMTP, 4D gera um erro e o objeto de estado resultante contém os valores abaixo:
Este código construi e envia um correio eletrônico:
C_OBJECT($server)
$server:=New object
$server.host:="mail.smtp.host" // Obrigatório
$server.port:=25 // Opcional, valor predeterminado: 587
$transporter:=SMTP New transporter($server)</p><p>C_COLLECTION($headers) //adiciona cabeçalhos definidos pelo usuário
$headers:=New collection
$headers.push(New object("name";"X-MAILER";"value";"MySoftware"))
$headers.push(New object("name";"X-4D-VERSION";"value";"17Rx"))</p><p>
C_OBJECT($email)
$email:=New object
$email.subject:="my first mail"
$email.to:="test.mail@4d.com"
$email.from:="test.noreply@4d.com"
$email.textBody:="this is a test"
$email.attachments:=New collection(MAIL New attachment("schedule.xlsx"))
$email.headers:=$headers
$email.keywords:=New object("technical";True;"advanced";True;"useless";False)
$status:=$transporter.send($email)
If(Not($status.success))
ALERT("Aconteceu um erro ao enviar o correio: "+$status.statusText)
End if
MAIL Convert from MIME
MAIL Convert to MIME
MAIL New attachment
SMTP New transporter
SMTP_transporter.checkConnection( )
Produto: 4D
Tema: Mail
Criado por: 4D v17 R4
Modificado: 4D v17 R5
Manual de linguagem 4D ( 4D v18)
Manual de linguagem 4D ( 4D v18.4)
Manual de linguagem 4D ( 4D v18.6)