4D v17

SMTP_Attachment

Página Inicial

 
4D v17
SMTP_Attachment

SMTP_Attachment 


 

SMTP_Attachment ( smtp_ID ; nomeArquivo ; tipoCod ; excluirOpcao {; idAdjunto {; tipoConteudo}} ) -> Resultado 
Parâmetro Tipo   Descrição
smtp_ID  Inteiro longo in Referencia da mensagem
nomeArquivo  Texto in Nome do arquivo a anexar
tipoCod  Inteiro in 0 = Não codificar (só envia o DataFork) ±1 = BinHex ±2 = Base64; (só envia o DataFork) ±3 = AppleSingle ±4 = AppleDouble ±5 = AppleSingle E Base64 ±6 = AppleDouble E Base64 ±7 = UUEncode
excluirOpcao  Inteiro in 0 = Adicionar à lista existente, 1 = Substituir todos os anexos por nomeArquivo, 2 = Excluir somente este anexo
idAdjunto  Texto in ID do arquivo adjunto(mensagens HTML unicamente)
tipoConteudo  Texto in Valor do tipo de conteúdo
Resultado  Inteiro in Código de erro

O comando SMTP_Attachment permite adicionar arquivos binários ou de texto a sua mensagem em formato MIME. Este comando pode ser chamado várias vezes para anexar vários documentos a uma mensagem. Se passa um valor maior que zero no parâmetro tipoCod, este comando realizará a codificação no momento do envio da mensagem.

smtp_ID é a referencia inteiro longo de uma mensagem criado com o comando SMTP_New.

nomeArquivo contém o nome do arquivo a anexar a mensagem. Este valor pode ser especificado de três formas diferentes:

    nomArchivo = busca o nome de arquivo no mesmo diretório da estrutura do banco de dados
    
    Rota:nomeArquivo = rota de acesso completa incluindo o nome de arquivo

Nota: em 4D Internet Commands v16 R2 e superiores, os nomes dos arquivos estão limitados a 1.024 caracteres, qualquer que seja o sistema operacional. Entretanto, nas versões de macOS 32 bits, 4D Internet Commands utiliza as APIs de gestão administrativa de arquivos declarados obsoletos que já não são mantidas por Apple. Neste ambiente, dependendo da versão de macOS, os nomes de arquivo podem ter limitações mais restritivas em relação a longitude e caracteres admitidos. Recomendamos encarecidamente atualizar a 4D Internet Commands 64 bits logo que seja possível.

tipoCod é um valor inteiro que indica que tipo de codificação aplicar ao arquivo antes de integrar a mensagem. Se anexa um arquivo binário, deve utilizar um método de codificação adequado (BinHex, AppleSingle). O método de codificação mais comum é BinHex.

Se passar valores positivos em tipoCod o comando codifica automaticamente o arquivo utilizando o método especificado quando é enviada a mensagem. A codificação de um arquivo se produz no momento em que é executado o comando SMTP_Send. Se o arquivo é grande a execução do comando SMTP_Send pode demorar uns momentos. Pode economizar tempo quando o mesmo arquivo se envia várias vezes. Nestes casos o melhor é codificar o arquivo uma vez com o comando IT_Encode e depois anexar o arquivo resultante a sua mensagem utilizando o valor negativo de tipoCod. Um valor negativo em tipoCod não realizará nenhuma codificação adicional, mas que o tipo de codificação é descrito no cabeçalho do arquivo adjunto à mensagem. Isto informa ao software de mensagens do destinatário a forma correta de interpretar os dados anexos.

Nota: Não pode passar um elemento de array no parâmetro tipoCod.

excluirOpcao é um parâmetro inteiro opcional que especifica a forma de tratar os dados adjuntos.

  • Um valor de zero adiciona o arquivo anexo à lista atual dos arquivos adjuntos.
  • Um valor de 1 substitui todos os arquivos anexos com o arquivo nomeArquivo. Se nomeArquivo é uma cadeia vazia, todos os arquivos anexos serão excluídos.
  • Um valor de 2 eliminará somente o arquivo adjunto listado em nomeArquivo da lista de arquivos anexos.
O parâmetro idAdjunto associa o arquivo adjunto com uma referência definida no corpo da mensagem utilizando a etiqueta HTML t<img src=\"cid:ID\">. Isto significa que o conteúdo dos arquivos, por exemplo uma imagem, podem ser mostrados na mensagem no cliente de correio eletrônico.
Este funcionamento só é compatível com as mensagens em HTML. Também tenha em conta que o resultado final pode variar dependendo do cliente de correio eletrônico.

O parâmetro opcional tipoConteudo define explicitamente o tipo de conteúdo do arquivo adjunto. De forma pré determinada, se este parâmetro se omite ou contém uma cadeia vazia, 4DIC define automaticamente o tipo de conteúdo do arquivo adjunto em função de sua extensão. Se aplicam as seguintes regras:
ExtensãoTipo de conteúdo
jpg, jpegimage/jpeg
pngimage/png
gifimage/gif
pdfapplication/pdf
docapplication/msword
xlsapplication/vnd.ms-excel
pptapplication/vnd.ms-powerpoint
zipapplication/zip
gzapplication/gzip
jsonapplication/json
jsapplication/javascript
psapplication/postscript
xmlapplication/xml
htm, htmltext/html
mp3audio/mpeg
otherapplication/octet-stream
Em tipoConteudo, pode passar uma cadeia que defina o tipo de conteúdo para o arquivo (tipo MIME), por exemplo "video/mpeg". Este valor de tipo de conteúdo se estabelecerá para os dados adjuntos, independentemente de sua extensão.

Nota: passe uma cadeia vazia ("") no parâmetro idAdjunto se não o deseja utilizar.

Envio de uma mensagem HTML com uma imagem incluída:

 $error:=SMTP_New($smtp_id)
 $error:=SMTP_Host($smtp_id;"smtp.gmail.com")
 $error:=SMTP_From($smtp_id;"henry@gmail.com")
 $error:=SMTP_ReplyTo($smtp_id;"replies@gmail.com")
 $error:=SMTP_Subject($smtp_id;"HTML Test  &  picture included")
 $error:=SMTP_To($smtp_id;"john@4d.com";1)
 $error:=SMTP_Body($smtp_id;"<html><B><I>Hello world in bold!</I></B> <img src=\"cid:myID123\">(normal text)</HTML>";4)
 $error:=SMTP_Attachment($smtp_id;"c:\\temp\\tulips.jpg";2;0;"myID123")
 $error:=SMTP_Auth($smtp_id;"henry@gmail.com";"*******")
 $error:=SMTP_Send($smtp_id;1)
 $error:=SMTP_Clear($smtp_id)

Queremos declarar seus arquivos de configuração como arquivos XML:

 $path:=Get 4D folder(Database folder)+"Settings.mySettings"
 $err:=SMTP_Attachment($smtp_id;$path;2;0;"myID123";"application/xml")



Ver também 

IT_Encode
SMTP_New
SMTP_Send

 
PROPRIEDADES 

Produto: 4D
Tema: IC Send Mail
Número 88972

Comportamento específico sob Windows

 
HISTÓRIA 

Criado por: 4D Internet Commands 6.5
Modificado: 4D Internet Commands v14
Modificado: 4D Internet Commands v14 R4
Modificado: 4D Internet Commands v16 R2

 
ARTICLE USAGE

4D Internet Commands ( 4D v17)