4D Internet Commands v16

SMTP_Send

Accueil

 
4D Internet Commands v16
SMTP_Send

SMTP_Send 


 

SMTP_Send ( smtp_ID {; paramSession} ) -> Résultat 
Paramètre Type   Description
smtp_ID  Entier long in Référence du message
paramSession  Entier long in 0 ou omis = Ne pas utiliser SSL mais bascule permise, 1 = Utiliser SSL, 2 = Ne jamais utiliser SSL (bascule non permise)
Résultat  Entier in Code d'erreur

La commande SMTP_Send envoie le message référencé par smtp_ID, mais n'efface pas les données de la mémoire.

smtp_ID est l'identifiant du message électronique créé avec la commande SMTP_New.

Le paramètre optionnel paramSession vous permet de définir le mode d'activation du protocole SSL pour la connexion :

  • si vous passez 0 ou omettez ce paramètre, le message sera envoyé en mode standard non sécurisé. Si le serveur propose une mise à jour en SSL/TLS après authentification, la bascule est effectuée automatiquement (fonctionnement du SSL/TLS en mode explicite).
  • si vous passez 1, l'envoi du message sera effectué en SSL (mode synchrone),
  • si vous passez 2, l'envoi du message sera effectué en mode standard mais sans prise en charge de la mise à jour en SSL/TLS.

A compter de la version 13.2, 4D Internet Commands prend en charge les connexions STARTTLS en mode explicite. Le principe est que la connexion s'effectue en mode standard puis est "mise à niveau" en SSL/TLS après la phase d'authentification. Reportez-vous à l'exemple 2 pour une illustration de ce mécanisme.

  • La connexion initiale doit être effectuée sur un port non-SSL/TLS mais qui n'est pas le port par défaut (25). Vous devez donc appeler la commande IT_SetPort avant SMTP_Send afin de désigner le port utilisé pour la connexion SMTP initiale. Pour une connexion à un serveur MS Exchange, il faut utiliser le port 587.
  • La connexion doit être authentifiée, vous devez donc appeler la commande SMTP_Auth. Seul le mode d’authentification LOGIN est pris en charge par 4D Internet Commands pour communiquer avec un serveur MS Exchange. Vous pouvez soit passer ce mode, soit laisser le mode par défaut (dans ce cas le mode le plus sécurisé du serveur est utilisé) :
     $erreur:=SMTP_Auth($smtp_id;"user.name";"password";2) // OK mode LOGIN
     $erreur:=SMTP_Auth($smtp_id;"user.name";"password") // OK mode LOGIN défini par le serveur

Dans cet exemple, un message est créé et les éléments statiques sont définis. Ensuite, pour chaque enregistrement de la table [Personnes], le message est personnalisé et envoyé.

 $erreur:=SMTP_New($smtp_id)
 $erreur:=SMTP_Host($smtp_id;"wkrp.com")
 $erreur:=SMTP_From($smtp_id;"herb_tarlick@wkrp.com")
 $erreur:=SMTP_ReplyTo($smtp_id;"bigguy@wkrp.com")
 $erreur:=SMTP_Subject($smtp_id;"Promotions sur les espaces publicitaires !")
 DEBUT SELECTION([Personnes])
 Boucle($i;1;Enregistrements trouves([Personnes]))
    Si([Personnes]VentesACeJour>100000)
       $Corps:=◊GrdTexteDisque
    Sinon
       $Corps:=◊PttTexteDisque
    Fin de Si
    $Corps:=Remplacer chaine($TexteConstant;"<Salutations>";[Personnes]Prénom)
    $erreur:=SMTP_To($smtp_id;[Personnes]Email;1) `Remplacer l'en-tête "A" par une nouvelle valeur
    $erreur:=SMTP_Body($smtp_id;$Corps)
    $erreur:=SMTP_Send($smtp_id)
    ENREGISTREMENT SUIVANT([Personnes])
 Fin de boucle
 $erreur:=SMTP_Clear($smtp_id)

Cet exemple envoie un message de test via un serveur Exchange en STARTTLS :

 $erreur:=SMTP_New($smtp_id)
 $erreur:=SMTP_Host($smtp_id;"exchange.4d.com")
 $erreur:=SMTP_From($smtp_id;"username@4d.com")
 $erreur:=SMTP_ReplyTo($smtp_id;"username@4d.com")
 $erreur:=SMTP_Subject($smtp_id;"Test de message")
 $erreur:=SMTP_Auth($smtp_id;"username";"!%@password")  //utiliser des identifiants valides
 $Body:="Ceci est un test d'envoi de message via Exchange, merci de ne pas répondre"
 $erreur:=IT_SetPort(2;587) //mode SMTP standard, port 587 pour Exchange
 $erreur:=SMTP_To($smtp_id;"destinataire@gmail.com")
 $erreur:=SMTP_Body($smtp_id;$Body)
 $erreur:=SMTP_Send($smtp_id;0) //Envoi en mode 'upgradable'
 ALERTE(Chaine($erreur));



Voir aussi  

SMTP_New

 
PROPRIÉTÉS 

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

 
HISTORIQUE 

Créé : 4D Internet Commands 6.5
Modifié : 4D Internet Commands v12.1
Modifié : 4D v13.2

 
UTILISATION DE L'ARTICLE

4D Internet Commands ( 4D Internet Commands v16)