Envoyer un Email Automatique dans Sage X3

📧 Envoyer un Email Automatique dans Sage X3

Un exemple concret et commenté, avec sources officielles

📌 Contexte

Dans Sage X3, il est courant d’automatiser l’envoi d’alertes email. Par exemple, lorsqu’un salarié modifie ses données personnelles, le service RH ou le manager doit être informé automatiquement.

👉 Référence : ASYRMAIL.ASEND_MAIL - Documentation officielle

🧩 Le Script Complet

Subprog ZMAIL()
  Local Integer STA
  Local Integer TRACE
  Local Char FIC_TRACE(250)
  Local Char ISSUERMAIL(250)
  Local Char A_USER(250)(1..)
  Local Char CC_USER(250)(1..)
  Local Char HEADER(250)
  Local Clbfile BODY(0)
  Local Char ATTACHMENTS(250)(1..)

  A_USER(1) = "rh@jbel-annour.ma"
  A_USER(2) = "consultant.sage@jbel-annour.ma"

  HEADER = 'ALERTE - Modification Données Salarié'
  ISSUERMAIL = 'consultant.sage@jbel-annour.ma'
  TRACE = 2

  Append BODY, 'Bonjour,' + chr$(10)
  Append BODY, 'Une ou plusieurs modifications ont été détectées :' + chr$(10)
  Append BODY, 'Type : ' + chr$(10)
  Append BODY, 'Utilisateur : ' + GUSER + chr$(10)
  Append BODY, 'Date : ' + num$(DATE$) + ' ' + time$ + chr$(10)
  Append BODY, chr$(10)
  Append BODY, 'Merci de vérifier les journaux de trace.' + chr$(10)
  Append BODY, chr$(10)
  Append BODY, 'Cordialement,' + chr$(10) + 'SI System' + chr$(10)

  STA = func ASYRMAIL.ASEND_MAIL(GACTX, ISSUERMAIL, A_USER, CC_USER, HEADER, BODY, ATTACHMENTS, TRACE)
  If STA <> [V]CST_AOK Then
    Infbox(mess(1163,196,1))
  Endif
End

🔍 Explication

Variables : On définit l’expéditeur, les destinataires (A_USER), le sujet (HEADER), le corps du mail (BODY) et le niveau de trace.
Corps du mail : Construit ligne par ligne avec Append BODY pour inclure l’utilisateur (GUSER) et la date.
Envoi : ASYRMAIL.ASEND_MAIL exécute l’envoi. En cas d’erreur, un Infbox s’affiche.

🎯 Bonnes Pratiques

  • ✅ Tester sur un environnement de test.
  • ✅ Vérifier la configuration SMTP (voir doc SMTP Sage X3).
  • ✅ Utiliser des adresses techniques dédiées.