4D v18MAIL New attachment |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v18
MAIL New attachment
|
MAIL New attachment ( valor {; nome {; cid {; tipo {; disposição}}}} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
valor | Texto, BLOB |
![]() |
Rota do arquivo anexo (texto), ou Blob contendo o anexo (BLOB) |
|||||
nome | Texto |
![]() |
Nome = extensão usada pelo cliente mail para nomear o anexo | |||||
cid | Texto |
![]() |
ID de anexo (apenas mensagens HTML) ou "" se nenhum cid for necessário | |||||
tipo | Texto |
![]() |
Valor do cabeçalho de tipo conteúdo | |||||
disposição | Texto |
![]() |
Valor de cabeçalho conteúdo-disposição: "inline" ou "attatchment" | |||||
Resultado | Objeto |
![]() |
objeto anexado | |||||
O comando MAIL New attachment permite que crie um objeto anexado que pode adicioanr a um objeto mail (ver SMTP_transporter.send( )).
Em valor, passe os conteúdos do anexo. Pode passar:
O parâmetro opcional nome permite passar o nome e extensão a ser usado pelo cliente mail para atribuir o anexo. Se nome for omitido e:
O parâmetro opcional cid permite passar uma ID interna para o anexo. Este ID é o valor do cabeçalho Content-Id header, será usado apenas nas mensagens HTML. O cid associa o anexo com uma referência definida no corpo da mensagem usando uma tag HTML como <img src="cid:ID">. Isso significa que os conteúdos do anexo (por exemplo uma imagem) pode ser exibida dentro da mensagem no cliente mail. O resultado final pode variar dependendo do cliente mail. Pode passar uma string vazia em cid se não quiser usar este parâmetro.
Pode usar o parâmetro opcional tipo para explicitamente estabelecer o tipo-conteúdo do arquivo anexo. Por exemplo, pode pasar uma string definindo um tipo MIME ("video/mpeg"). Este valor conteúdo-tipo é estabelecido para o anexo, independente da extensão. Para saber mais sobre tipos MIME, veja a página da wikipedia sobre tipos MIME.
Como padrão, se este parâmetro for omitido ou contendo uma string vazia, o conteúdo-tipo do arquivo anexo é baseado em sua extensão. As regras abaixo são aplicadas para os tipos principais MIME:
Extensão | Tipo conteúdo |
jpg, jpeg | image/jpeg |
png | image/png |
gif | image/gif |
application/pdf | |
doc | application/msword |
xls | application/vnd.ms-excel |
ppt | application/vnd.ms-powerpoint |
zip | application/zip |
gz | application/gzip |
json | application/json |
js | application/javascript |
ps | application/postscript |
xml | application/xml |
htm, html | text/html |
mp3 | audio/mpeg |
other | application/octet-stream |
O parâmetro opcional disposição permite que passe o cabeçalho conteúdo-disposição do anexo. Pode passar uma das constantes abaixo do tema constantes "Mail":
Constante | Valor | Comentário |
mail disposition attachment | attachment | Define o valor do cabeçalho Content-disposition para "attachment", o que significa que o arquivo adjunto deve ser proporcionado como um link na mensagem. |
mail disposition inline | inline | Define o valor do cabeçalho Content-disposition para "inline", o que significa que o arquivo adjunto deve ser representado dentro do conteúdo da mensagem, na localização "cid". A renderização depende do cliente de correio. |
Como padrão, se o parâmetro disposição for omitido:
MAIL New attachment retorna um novo objeto anexo que pode adicionar para a coleção anexos do objeto mail manejado pelo método transporter.send( ). O objeto contém as seguintes propriedades e métodos apenas-leitura:
Propriedade | Tipo | Descrição |
attachment.path | Text | Rota completa do anexo (se existir) |
attachment.name | Text | Nome e extensão do anexo. Como padrão, o nome do arquivo. |
attachment.disposition | Text | Valor do cabeçalho Content-Disposition: "inline" ou "attachment". |
attachment.type | Text | Tipo de conteúdo do arquivo anexo. Se este tipo não for passado explicitamente ao comando MAIL New attachment, o tipo de conteúdo é baseado em sua extensão de arquivo |
attachment.cid | Text | ID do anexo (usado apenas em mensagens HTML) Se esta propriedade estiver faltando, o arquivo é lidado como um anexo simples (link) |
Método | Descrição |
attachment.getContent( ) | Retorna conteúdos anexos |
Se quiser enviar um email com um arquivo selecionado pelo usuário como um anexo e uma imagem embebida no corpo HTML:
$doc:=Select document("";"*";"Please select a file to attach";0)
If(OK=1) //Se um documento for selecionado
C_OBJECT($email;$server;$transporter)
$server:=New object
$server.host:="smtp.mail.com"
$server.user:="test_user@mail.com"
$server.password:="p@ssw@rd"
$transporter:=SMTP New transporter($server)
$email:=New object
$email.from:="test_user@mail.com"
$email.to:="test_user@mail.com"
$email.subject:="Esta é uma mensagem teste com anexos"
//adiciona um link para um arquivo para baixar
$email.attachments:=New collection(MAIL New attachment(Document))
//insere uma imagem inline (usa um cid)
$email.attachments[1]:=MAIL New attachment("c:\\Pictures\\4D.jpg";"";"4D")
$email.htmlBody:="<html>"+\
"<body>Hello World!"+\
"<img src='cid:4D' >"+\
"</body>"+\
"</head>"+\
"</html>"
$transporter.send($email) //envia mail
End if
Se quiser enviar um email com uma área 4D Write Pro como um anexo:
C_BLOB($blob)
WP EXPORT VARIABLE(WPArea;$blob;wk docx)
C_OBJECT($email;$server;$transporter)
$server:=New object
$server.host:="smtp.mail.com"
$server.user:="user@mail.com"
$server.password:="p@ssw@rd"
$transporter:=SMTP New transporter($server)
$email:=New object
$email.from:="user@mail.com"
$email.to:="customer@mail.com"
$email.subject:="New annual report"
$email.textBody:="Please find enclosed our latest annual report."
$email.attachments:=New collection(MAIL New attachment($blob;"Annual report.docx"))
$transporter.send($email)
attachment.cid
attachment.disposition
attachment.getContent( )
attachment.name
attachment.path
attachment.type
SMTP_transporter.send( )
Produto: 4D
Tema: Mail
Número
1644
Criado por: 4D v17 R4
Manual de linguagem 4D ( 4D v18)