Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 06-02-2012 09:40:15

bdf94  
Membre Power Geek
Date d'inscription: 04-10-2006
Messages: 180
Pépites: 2,231
Banque: 0

Envoie mail Outlook

Bonjour,

J'ai le script ci-dessous qui tourne actuellement sous PB 11.5 pour envoyer un mail via Outlook 2000 SR1.
Nous migrons vers Outlook 2010 et ce script ne fonctionne plus.
Quelqu'un a-t-il une idée ?

Code: pb

string ls_dest[], ls_copie[], ls_fichier[], ls_nom_fichier
long ll_nb_dest, ll_nb_copie, i
mailSession mSes
mailReturnCode mRet
mailMessage mMsg
mailFileDescription mAttach
integer li_return

li_return = 0

// Recup les adresses mail decoupees
ls_dest[] = of_parse( as_dest, ";")
ll_nb_dest = UpperBound( ls_dest[])

ls_copie[] = of_parse( as_copie, ";")
ll_nb_copie = UpperBound( ls_copie[])

// Creation session
mSes = CREATE mailSession

// Connexion session
mRet = mSes.mailLogon(mailDownLoad!)

IF mRet = mailReturnSuccess! THEN

  // Structure du mail (destinataire / copie / objet / corps du texte)
  FOR i = 1 TO ll_nb_dest
    
    mRet = mSes.mailResolveRecipient(ls_dest[i])
  
    IF mRet = mailReturnFailure! THEN
    
       f_ref_pb_error( "n_cst_systeme", "of_envoie_mail", 0, "Mail - Erreur destinataire : " + ls_dest[i])
    
    END IF
    
    mMsg.Recipient[i].name = ls_dest[i]
    mMsg.Recipient[i].RecipientType = mailTo!
  NEXT
  
  IF Trim( as_copie)="" OR Trim( as_copie)=" " OR IsNull( Trim( as_copie)) THEN
  ELSE
    FOR i = 1 TO ll_nb_copie
      
      mRet = mSes.mailResolveRecipient(ls_copie[i])
  
      IF mRet = mailReturnFailure! THEN
      
         f_ref_pb_error( "n_cst_systeme", "of_envoie_mail", 0, "Mail - Erreur copie : " + ls_copie[i])
      
      END IF
      
      mMsg.Recipient[i + ll_nb_dest].name = ls_copie[i]
      mMsg.Recipient[i + ll_nb_dest].RecipientType = mailCC!
    NEXT
  END IF
  
  mMsg.Subject = as_objet
  mMsg.NoteText = as_corps
  
  IF Trim( as_piece_jointe)="" OR Trim( as_piece_jointe)=" " OR IsNull( Trim( as_piece_jointe)) &
    OR FileExists( as_piece_jointe) = FALSE THEN
  ELSE
    ls_fichier[] = of_parse( as_piece_jointe, "/")
    ls_nom_fichier = ls_fichier[UpperBound( ls_fichier[])]
    mAttach.FileName = ls_nom_fichier
    mAttach.PathName = as_piece_jointe
    mAttach.FileType = mailAttach!
    mMsg.AttachmentFile[1] = mAttach
  END IF
  
  // Envoi mail
  mRet = mSes.mailSend(mMsg)
  IF mRet = mailReturnSuccess! THEN
     li_return = 1
  ELSE
    f_ref_pb_error( "n_cst_systeme", "2.of_envoie_mail", 0, +&
    "Erreur envoie : "+ VSN(string(mRet)) +&
    "~nDest. : "+ VSN(as_dest) +&
    "~nCopie : "+ VSN(as_copie) +&
    "~nObject : "+ VSN(as_objet) +&
    "~nCorps : "+ VSN(as_corps))
  //  CHOOSE CASE mRet
  //    CASE mailReturnFailure!
  //      f_ref_pb_error( "n_cst_systeme", "2.of_envoie_mail", 0, "Mail - Erreur envoie : mailReturnFailure!")
  //    CASE mailReturnInsufficientMemory!
  //      f_ref_pb_error( "n_cst_systeme", "2.of_envoie_mail", 0, "Mail - Erreur envoie : mailReturnInsufficientMemory!")
  //    CASE mailReturnUserAbort!
  //      f_ref_pb_error( "n_cst_systeme", "2.of_envoie_mail", 0, "Mail - Erreur envoie : mailReturnUserAbort!")
  //  END CHOOSE
  END IF
else
  f_ref_pb_error( "n_cst_systeme", "1.of_envoie_mail", 0, "Mail - Erreur session : " + string( mRet))
END IF

// Deconnexion + sup objet session
mSes.mailLogoff()
DESTROY mSes

return li_return


NB : la fonction f_ref_pb_error est juste une trace afin de voir le bon fonctionnement.

Dernière modification par bdf94 (06-02-2012 09:47:02)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22