Powerbuilder pour les completement Geeks !

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