4D v18

MAIL New attachment

Inicio

 
4D v18
MAIL New attachment

MAIL New attachment 


 

MAIL New attachment ( valor {; nombre {; cid {; tipo {; disposition}}}} ) -> Resultado 
Parámetro Tipo   Descripción
valor  Texto, BLOB in Ruta del archivo adjunto (texto) o Blob
que contiene el archivo adjunto (BLOB)
nombre  Texto in Nombre + extensión utilizada por el cliente de correo para designar el archivo adjunto
cid  Texto in ID del archivo adjunto (solo mensajes HTML) o " " si no se requiere cid
tipo  Texto in Valor del encabezado content-type
disposition  Texto in Valor del encabezado content-disposition: "inline" o "attachment".
Resultado  Objeto in Objeto adjunto

El comando MAIL New attachment le permite crear un objeto adjunto que puede agregar a un objeto mail (ver SMTP_transporter.send( )).

En valor, pase el contenido del adjunto. Puedes pasar:

  • un valor texto que contiene la ruta del archivo adjunto, expresado con la sintaxis del sistema. Puede pasar un nombre de ruta completo o un nombre de archivo simple (en cuyo caso 4D buscará el archivo en el mismo directorio que el archivo de estructura de la base).
  • o un valor BLOB que contiene el archivo adjunto en sí.    

El parámetro opcional nombre le permite pasar el nombre y la extensión que utilizará el cliente de correo para designar el archivo adjunto. Si se omite nombre y:

  • valor es una ruta de archivo, se utilizan el nombre y la extensión del archivo,
  • valor es un BLOB, se genera automáticamente un nombre aleatorio sin extensión.

El parámetro opcional cid  le permite pasar una ID interna para el archivo adjunto. Esta ID es el valor del encabezado Content-Id, se utilizará solo en mensajes HTML. El parámetro cid asocia el archivo adjunto a una referencia definida en el cuerpo del mensaje utilizando una etiqueta HTML tal como <img src="cid:ID">. Esto significa que el contenido del archivo adjunto (por ejemplo, una imagen) debe mostrarse dentro del mensaje en el cliente de correo. El resultado final puede variar según el cliente de correo. Puede pasar una cadena vacía en cid si no desea utilizar este parámetro.

Puede utilizar el parámetro opcional tipo para definir explícitamente el content-type del archivo adjunto. Por ejemplo, puede pasar una cadena que define un tipo MIME ("video/mpeg"). Este valor content-type será definido por el archivo adjunto, independientemente de su extensión. Para obtener más información sobre los tipos MIME, consulte la página tipo MIME en Wikipedia.
Por defecto, si este parámetro se omite o contiene una cadena vacía, el content-type del archivo adjunto se basa en su extensión. Las siguientes reglas se aplican para los principales tipos MIME:

ExtensiónContent Type
jpg, jpegimagen/jpeg
pngimagen/png
gifimagen/gif
pdfaplicación/pdf
docaplicación/msword
xlsaplicación/vnd.ms-excel
pptaplicación/vnd.ms-powerpoint
zipaplicación/zip
gzaplicación/gzip
jsonaplicación/json
jsaplicación/javascript
psaplicación/postscript
xmlaplicación/xml
htm, htmltexto/html
mp3audio/mpeg
otheraplicación/octet-stream

El parámetro opcional disposicion le permite pasar el encabezado content-disposition del adjunto. Puede pasar una de las siguientes constantes del tema "Mail":

Constante Valor Comentario
mail disposition attachment attachment Define el valor del encabezado Content-disposition para "attachment", lo que significa que el archivo adjunto debe proporcionarse como un enlace en el mensaje.
mail disposition inline inline Define el valor del encabezado Content-disposition para "inline", lo que significa que el archivo adjunto debe representarse dentro del contenido del mensaje, en la ubicación "cid". La renderización depende del cliente de correo.

 Por defecto, si se omite el parámetro disposicion:

  • si se utiliza el parámetro cid, el encabezado Content-disposition se define como "inline",
  • si el parámetro cid no se pasa o está vacío, el encabezado Content-disposition se define como "attachment".

MAIL New attachment  devuelve un nuevo objeto adjunto que puede agregar a la colección adjuntos del objeto mail manejado por el método transporter.send( ). El objeto contiene las siguientes propiedades y métodos de solo lectura:

 

PropiedadTipoDescripción
attachment.pathTextoRuta completa del archivo adjunto (si existe)
attachment.nameTextoNombre y extensión del archivo adjunto. Por defecto, el nombre del archivo.
attachment.dispositionTextoValor del encabezado Content-Disposition: "inline" o "attachment".
attachment.typeTextoTipo de contenido del archivo adjunto. Si este tipo no se pasa explícitamente al comando MAIL New attachment, el content-type se basa en su extensión de archivo.
attachment.cidTextoID del archivo adjunto (utilizado solo en mensajes HTML). Si falta esta propiedad, el archivo se maneja como un archivo adjunto simple (enlace)

 

MétodoDescripción
attachment.getContent( )Devuelve el contenido del archivo adjunto

Desea enviar un correo electrónico con un archivo seleccionado por el usuario como archivo adjunto y una imagen integrada en el HTML:

 $doc:=Select document("";"*";"Por favor seleccione un archivo a adjuntar";0)
 If(OK=1) //Si un documento ha sido seleccionado
 
    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:="Este es un mensaje de prueba con adjuntos"
 
  //añada un enlace para descargar el archivo
    $email.attachments:=New collection(MAIL New attachment(Document))
  //inserte una imagen inline (utilice un 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//envíe el mail
 
 End if

Desea enviar un correo electrónico con un área 4D Write Pro como archivo adjunto:

 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:="Por favor encuentre adjutno nuestro último informe anual."
 $email.attachments:=New collection(MAIL New attachment($blob;"Annual report.docx"))
 
 $transporter.send($email)



Ver también 

attachment.cid
attachment.disposition
attachment.getContent( )
attachment.name
attachment.path
attachment.type
SMTP_transporter.send( )

 
PROPIEDADES 

Producto: 4D
Tema: Mail
Número 1644

This command can be run in preemptive processes

 
HISTORIA 

Creado por: 4D v17 R4

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v18)