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 ifSe 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)
Adicionar um comentário