PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 23 → Question pour les spécialistes de la messagerie et du IMAP
Question pour les spécialistes de la messagerie et du IMAP
Débuté par LM Concept, 27 juil. 2018 15:26 - 5 réponses
Membre enregistré
228 messages
Popularité : +3 (3 votes)
Posté le 27 juillet 2018 - 15:26
Bonjour,
Quand on envoie un email avec Outlook, (paramétré en IMAP), le mail se retrouve dans le dossier « sent » (ou envoyé peu importe) une fois envoyé. Du coup grâce à l’IMAP, je peux voir les messages envoyés depuis un autre accès ou en webmail etc…
Or dans WD, si on envoie un email avec le même compte méthode basique (EmailEnvoieMessage), le message part bien mais n’est pas copié dans le dossier « sent » !
Est-ce que cela signifie qu’il faut faire la copie soit même ? Ou qu’il y aurait un paramètre que j’ai loupé dans l’envoie !?

Merci à vous
BON DEV
Membre enregistré
228 messages
Popularité : +3 (3 votes)
Posté le 30 juillet 2018 - 09:35
Un p'tit up :(
Membre enregistré
102 messages
Posté le 03 août 2018 - 17:05
Copier l'objet Mail dans le répertoire Sent juste après l'envoi
Membre enregistré
228 messages
Popularité : +3 (3 votes)
Posté le 03 août 2018 - 18:17
Merci, pour la réponse ! Donc pas d'autres possibilités.
Je regarde alors de ce coté la.

BON DEV
Membre enregistré
3 messages
Posté le 08 novembre 2018 - 21:50
bonjour,
je me suis confronté également a ce problème et après avoir fait une synthèse des différentes réponse voici un code qui fonctionne.
après l'envoie par stmp je récupère le nombre d’émail envoyés

PROCEDURE TransfererEmail(NbEmailEnvoyé=0)
//NbEmailEnvoyé sert a ne pas lire tous les mails de la boite de réception et arrête le traitement
//quand le traitement a traité tous les mails envoyés

MaSessionIMAP est un EmailSessionIMAP
MonMessage est un Email
i,k sont des entiers

//Repert_PJ est une chaîne="C:\TMP\MailTest\"
sDomainExpediteur est une chaîne
sListeDossiers est une chaîne
sRepTransfert est une chaîne="MsgEnvoyé"
sRepmail est une chaîne
ok est un booléen


//ma conexion imap
MaSessionIMAP..AdresseServeur = Serveur_Smtp
MaSessionIMAP..Nom = Expediteur
MaSessionIMAP..MotDePasse = ePass

EmailChangeTimeOut(30)
EmailParamètre(emailParamètreMode,1)

SELON Securité
CAS 1 //aucune
MaSessionIMAP..Option = emailOptionDéfaut
MaSessionIMAP..Port = 143
CAS 2 //tls
MaSessionIMAP..Option = emailOptionSécuriséTLS
MaSessionIMAP..Port = 993
CAS 3 //ssl
MaSessionIMAP..Option = optionSSL
MaSessionIMAP..Port = 993
FIN

Message("Connexion IMAP en cours...")
Sablier(Vrai)
ok=EmailOuvreSession(MaSessionIMAP)

//liste des dossiers du serveur
sListeDossiers=EmailListeDossier(MaSessionIMAP,LstDossierTous+LstDossierType)
//Trace(sListeDossiers)

//dossier de transfert
sRepmail="Sent" //par defaut
//je cherche mon dossier de transfert
SI Position(sListeDossiers,sRepTransfert)=0 ALORS //non trouvé
SI EmailAjouteDossier(MaSessionIMAP,sRepTransfert) ALORS //création du dossier ok
sRepmail=sRepTransfert
FIN
SINON
// Trace(sRepStoresfx+" trouvé")
sRepmail=sRepTransfert
FIN

EmailChangeDossier(MaSessionIMAP,"Inbox")
Multitâche(10)

k=EmailNbMessage(MaSessionIMAP)
Message(k+" Emails trouvé dans "+EmailDossierCourant(MaSessionIMAP))

SI NbEmailEnvoyé=0 ALORS
NbEmailEnvoyé=k
FIN
ok=EmailLitEntêteDernier(MaSessionIMAP,MonMessage) //, emailexpediteur,expediteur)
i=0
TANTQUE PAS MonMessage..EnDehors _ET_ i<NbEmailEnvoyé
// toastaffiche("début transfert i="+i)
sDomainExpediteur=MonMessage..Expediteur

// Trace("ID:"+MonMessage..ID+" "+MonMessage..Sujet,DateVersChaîne(MonMessage..DateRéception))

SI sDomainExpediteur~=Expediteur OU sDomainExpediteur="" ALORS
// Trace("ID:"+MonMessage..ID+" "+sDomainExpediteur)
SI EmailLitMessage(MaSessionIMAP,MonMessage,MonMessage..ID) ALORS
// trace("lecture ok")
SI EmailCopie(MaSessionIMAP,MonMessage,sRepmail) ALORS
Multitâche(10)
// trace("copie ok "+MonMessage..ID+" "+sRepmail)
SI EmailSupprimeMessage(MaSessionIMAP,MonMessage) ALORS
// trace("ID:"+MonMessage..ID+" "+"supprime ok")
Multitâche(10)
i++
FIN
FIN
FIN
FIN
EmailLitEntêtePrécédent(MaSessionIMAP,MonMessage)
FIN
EmailDétruit(MaSessionIMAP) //vide la corbeille
EmailFermeSession(MaSessionIMAP)
Sablier(Faux)
Message(i+" Emails transérés dans "+sRepmail)
Membre enregistré
228 messages
Popularité : +3 (3 votes)
Posté le 10 novembre 2018 - 09:09
Bonjour,
Très intéressant votre code, je regarde cela. Car personnellement pour moi ce n'était pas un priorité et j'avais mis cela de côté !
Et merci pour ce partage.
Message modifié, 10 novembre 2018 - 09:11