version 6.5
SMTP_Body (smtp_ID; msgCorps{; supprimerOption}) Entier
Paramètre | Type | Description | |
smtp_ID | Entier long | Référence de message | |
msgCorps | Texte | Corps du message | |
supprimerOption | Entier | 0 = Remplacer sauf si msgCorps vide, 1 = Remplacer, | |
2 = Ajouter | |||
Résultat | Entier | Code d'erreur |
Description
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 supprimerOption (voir plus bas). La taille du corps d'un message n'est réellement limitée que par la mémoire disponible.
Attention : En principe, le corps du message ne doit pas contenir de caractères accentués (tels que é, ö, etc.). Si vous souhaitez malgré tout utiliser des caractères de ce type (appelés "caractères étendus"), reportez-vous aux commandes SMTP_SetPrefs et SMTP_Charset.
Le paramètre optionnel supprimerOption vous permet de préciser s'il faut conserver ou remplacer le corps du message éventuellement existant :
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 supprimerOption est omis, par défaut la valeur 0 est utilisée.
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
Référence
SMTP_Charset, SMTP_New, SMTP_SetPrefs.