4D Internet Commands v14

SMTP_Body

Accueil

 
4D Internet Commands v14
SMTP_Body

SMTP_Body 


 

SMTP_Body ( smtp_ID ; msgCorps {; option} ) -> Résultat 
Paramètre Type   Description
smtp_ID  Entier long in Référence de message
msgCorps  Texte in Corps du message (UTF-8 par défaut)
option  Entier in 0 = Remplacer sauf si msgCorps vide, 1 = Remplacer, 2 = Ajouter, 4 = Format HTML (texte brut par défaut)
Résultat  Entier in Code d'erreur

La commande SMTP_Body insère le texte de msgCorps dans le corps principal du message identifié par smtp_ID. Le msgCorps est le principal bloc de texte.

smtp_ID contient l'identifiant d'un message électronique créé avec la commande SMTP_New.

Le paramètre msgCorps contient le corps du message. La taille de msgCorps est limitée aux 32 Ko d'un objet 4D de type Texte. Cela ne signifie pas que le message lui-même est limité à 32 Ko : pour envoyer une lettre dont le corps est supérieur à 32 Ko, il vous suffit de concaténer (mettre bout à bout) plusieurs textes, à l'aide du paramètre option (voir plus bas). La taille du corps d'un message n'est réellement limitée que par la mémoire disponible.

Note : Par défaut, le corps du message est encodé en UTF-8, ce qui garantit que les caractères envoyés seront correctement interprétés par la quasi totalité des clients de messagerie. Si vous souhaitez utiliser un jeu de caractères spécifique, reportez-vous aux commandes SMTP_SetPrefs et SMTP_Charset.

Le paramètre option vous permet de gérer la concaténation de plusieurs corps et de modifier le format du message (texte ou HTML) :

  • Si vous passez 0 (zéro), le contenu du paramètre msgCorps remplace le corps de message éventuellement présent, sauf si vous passez une chaîne vide dans msgCorps, auquel cas le corps de message existant est conservé.
  • Si vous passez 1, le contenu du paramètre msgCorps remplace le corps de message éventuellement présent. Dans ce cas, si vous passez une chaîne vide dans msgCorps, le corps du message est supprimé du message.
  • Si vous passez 2, le contenu de msgCorps est ajouté au corps du message, à la suite de tout texte déjà défini (concaténation).
  • Si vous passez 4, vous indiquez que le contenu de msgCorps est du HTML (par défaut, msgCorps est envoyé en texte brut).
    Si option est omis, par défaut la valeur 0 est utilisée.

Pour combiner l’envoi du message en HTML et une option de remplacement, il suffit d’additionner les valeurs. Par exemple, passez 1+4 dans option afin de remplacer le corps et de l’envoyer en HTML.

Exemple  

Voici un exemple SMTP complet :

 C_ENTIER LONG($SMTP_ID)
 C_BOOLEEN($EnvoyeOK;$OK)
 $EnvoyeOK:=Faux `Indicateur précisant s'il est applicable à toutes les commandes
 Au cas ou
    :(Non(VérifErreur("SMTP_New";SMTP_New($SMTP_ID))))
    :(Non(VérifErreur("SMTP_Host";SMTP_Host($SMTP_ID;◊pref_Server))))
    :(Non(VérifErreur("SMTP_From";SMTP_From($SMTP_ID;vDe))))
    :(Non(VérifErreur("SMTP_To";SMTP_To($SMTP_ID;vA))))
    :(Non(VérifErreur("SMTP_Cc";SMTP_Cc($SMTP_ID;vCC))))
    :(Non(VérifErreur("SMTP_Bcc";SMTP_Bcc($SMTP_ID;vBcc))))
    :(Non(VérifErreur("SMTP_Subject";SMTP_Subject($SMTP_ID;vSujet))))
    :(Non(VérifErreur("SMTP_Comments";SMTP_Comments($SMTP_ID;"Envoyé via 4D"))))
    :(Non(VérifErreur("SMTP_AddHeader";SMTP_AddHeader($SMTP_ID;"X-4Ddemo:";◊VERSION))))
    :(Non(VérifErreur("SMTP_Body";SMTP_Body($SMTP_ID;vMessage))))
    :(Non(VérifErreur("SMTP_Send";SMTP_Send($SMTP_ID))))
    Sinon
       $EnvoyeOK:=Vrai `Message composé et envoyé avec succès
 Fin de cas
 
 Si($SMTP_ID#0) `Si un message a été créé en mémoire, nous devons l'effacer maintenant
    $OK:=VérifErreur("SMTP_Clear";SMTP_Clear($SMTP_ID))
 Fin de si

Note : Pour plus d'informations sur cet emploi particulier de la structure Au cas ou, reportez-vous à l'Annexe A, Conseils de programmation.

L'exemple suivant fournit le code de la méthode VérifErreur. Cette méthode reçoit deux paramètres : le nom de la commande ($Commande) et la valeur de l'erreur (fournie par l'exécution de la commande dans le paramètre de la méthode). VérifErreur renvoie une valeur booléenne indiquant si la commande a retourné le code d'erreur 0 (zéro). Si ce n'est pas le cas, la valeur retournée ($0) est Faux, sinon Vrai.

 C_TEXTE(vMsgErreur)
 $Commande:=$1
 $Erreur:=$2
 $Resultat:=Vrai
 Si($Erreur#0)
    $Resultat:=Faux
    Si(◊VOIRERREURS`Booléen pour déterminer s'il faut afficher les messages d'erreur
       vMsgErreur:=IT_ErrorText($Erreur)
       ALERTE("ERREUR ---"+Caractere(13)+"Commande : "+$Commande+Caractere(13)+"Erreur Code:"+Chaine($Erreur)+Caractere(13)+"Description : "+vMsgErreur)
    Fin de si
 Fin de si
 $0:=$Resultat

 
PROPRIÉTÉS 

Produit : 4D Internet Commands
Thème : IC Send Mail
Numéro : 88973
Nom intl. : SMTP_Body

 
HISTORIQUE 

New
Créé : 4D Internet Commands 6.5
Modifié : 4D Internet Commands v14

 
VOIR AUSSI  

SMTP_Charset
SMTP_New
SMTP_SetPrefs

 
UTILISATION DE L'ARTICLE

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)

Hérité de : SMTP_Body ( 4D Internet Commands v11.4)