4D Internet Commands v14

SMTP_Body

Inicio

 
4D Internet Commands v14
SMTP_Body

SMTP_Body 


 

SMTP_Body ( smtp_ID ; msgCuerpo {; opcion} ) -> resultado 
Parámetro Tipo   Descripción
smtp_ID  Entero largo in Referencia del mensaje
msgCuerpo  Texto in Cuerpo del mensaje
opcion  Entero in 0 = Remplazar (si msgCuerpo no está vacío), 1 = Eliminar, 2 = Añadir, 4 = Formato HTML (texto plano por defecto)
resultado  Entero in Código de error

El comando SMTP_Body inserta el texto de msgCuerpo en el cuerpo principal del mensaje identificado por smtp_ID.
El msgCuerpo es el bloque principal de texto.

smtp_ID es la referencia entero largo de un mensaje electrónico creado con el comando SMTP_New.

msgCuerpo es un valor texto que contiene el cuerpo del mensaje. El tamaño de msgCuerpo está limitado a 32K de un objeto 4D de tipo Texto. Esto no significa que el mensaje esté limitado a 32K. Para enviar una carta cuyo cuerpo es superior a 32 K, debe utilizar la bandera Añadir del parámetro opcion (ver más adelante). El tamaño del cuerpo de un mensaje está limitado sólo por la memoria disponible.

Nota: por defecto, el cuerpo del mensaje está codificado con UTF-8, lo que garantiza que los caracteres enviados serán interpretados correctamente por casi todos los clientes de correo electrónico. Si desea utilizar un conjunto de caracteres específico, consulte los comandos SMTP_SetPrefs y SMTP_Charset.

opcion se utiliza para gestionar la concatenación de varios cuerpos y para modificar el formato de los mensajes (texto o HTML):

  • Si pasa cero, el contenido del parámetro msgCuerpo remplaza el cuerpo del mensaje presente, excepto si pasa una cadena vacía en msgCuerpo, en cuyo caso se utilizará el texto anterior.
  • Si pasa 1, el contenido del parámetro msgCuerpo remplaza el cuerpo del mensaje presente. En este caso, si pasa una cadena vacía en msgCuerpo, se borra el cuerpo del mensaje existente.
  • Si pasa 2, el contenido del parámetro msgCuerpo se anexará al cuerpo del mensaje, después de cualquier texto ya definido (concatenación)
    Si opcion se omite, por defecto se utiliza el valor 0.
  • Si pasa 4, indica que el contenido de msgCuerpo es HTML (por defecto, msgCuerpo se envía como texto sin formato).

Para combinar el envío del mensaje en HTML con una opción de reemplazo, sólo puede sumar los valores. Por ejemplo, puede pasar 1+4 en opcion con el fin de sustituir el cuerpo y enviar el mensaje en HTML.

Ejemplo  

Este es un ejemplo SMTP completo:

 C_LONGINT($SMTP_ID)
 C_BOOLEAN($SentOK;$OK)
 $SentOK:=False `Una bandera indica si es aplicable a todos los comandos
 Case of
    :(Not(ERRCHECK("SMTP_New";SMTP_New($SMTP_ID))))
    :(Not(ERRCHECK("SMTP_Host";SMTP_Host($SMTP_ID;◊pref_Server))))
    :(Not(ERRCHECK("SMTP_From";SMTP_From($SMTP_ID;vFrom))))
    :(Not(ERRCHECK("SMTP_To";SMTP_To($SMTP_ID;vTo))))
    :(Not(ERRCHECK("SMTP_Cc";SMTP_Cc($SMTP_ID;vCC))))
    :(Not(ERRCHECK("SMTP_Bcc";SMTP_Bcc($SMTP_ID;vBcc))))
    :(Not(ERRCHECK("SMTP_Subject";SMTP_Subject($SMTP_ID;vSubject))))
    :(Not(ERRCHECK("SMTP_Comments";SMTP_Comments($SMTP_ID;"Sent via 4D"))))
    :(Not(ERRCHECK("SMTP_AddHeader";SMTP_AddHeader($SMTP_ID;"X-4Ddemo:";◊VERSION))))
    :(Not(ERRCHECK("SMTP_Body";SMTP_Body($SMTP_ID;vMessage))))
    :(Not(ERRCHECK("SMTP_Send";SMTP_Send($SMTP_ID))))
    Else
       $SentOK:=True `mensaje compuesto y enviado con éxito
 End case
 
 If($SMTP_ID#0) `Si un mensaje fue creado en memoria, debemos borrarlo ahora
    $OK:=ERRCHECK("SMTP_Clear";SMTP_Clear($SMTP_ID))
 End if

Nota: para mayor información sobre el uso particular de la estructura Case of, consulte el Anexo A: Consejos de programación

A continuación está el código del método ERRCHECK. Este método recibe dos parámetros, el nombre del comando ($Command), y el valor del error (pasado por la ejecución del comando en el parámetro del método). ERRCHECK devuelve un error booleano indicando si el comando devolvió el error cero. Si el error no es cero, el valor devuelto ($0) es false, de lo contrario es true.

 C_TEXT(vErrorMsg)
 $Command:=$1
 $Error:=$2
 $Result:=True
 If($Error#0)
    $Result:=False
    If(◊SHOWERRORS`Booleano para determinar si mostrar los mensajes de error
       vErrorMsg:=IT_ErrorText($Error)
       ALERT("ERROR ---"+Char(13)+"Command: "+$Command+Char(13)+"Error
       Code"+String($Error)+Char(13)+"Description"+vErrorMsg)
    End if
 End if
 $0:=$Result

 
PROPIEDADES 

Producto: 4D Internet Commands
Tema: IC Send Mail
Número 88973

 
HISTORIA 

New
Creado por: 4D Internet Commands 6.5
Modificado: 4D Internet Commands v14

 
VER TAMBIÉN 

SMTP_Charset
SMTP_New
SMTP_SetPrefs

 
ARTICLE USAGE

4D Internet Commands ( 4D Internet Commands v14 R2)
4D Internet Commands ( 4D Internet Commands v14)
4D Internet Commands ( 4D Internet Commands v14 R3)
4D Internet Commands ( 4D Internet Commands v14 R4)

Inherited from : SMTP_Body ( 4D Internet Commands v11.4)