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