OVH Cloud OVH Cloud

envoie d'un mail

3 réponses
Avatar
Simon
Bonjour,
Dans une appli WD75 pour envoyer un mail il faut ouvrir une session:
"EmailOuvreSessionSMTP(COMPTE.Login,COMPTE.AdrSrvSmtp)"
Pour répondre aux variables il est impératif de connaître des données confidentielles
(Login, Mot de passe etc)

J'aimerai simplement ouvrir le gestionnaire de courrier par défaut avec l'adresse
préremplie (style mailto) et une pièce jointe attachée.

Comment faire ?

Merci d'avance.

3 réponses

Avatar
Roumegou
"Simon" a formulé ce samedi :
Bonjour,
Dans une appli WD75 pour envoyer un mail il faut ouvrir une session:
"EmailOuvreSessionSMTP(COMPTE.Login,COMPTE.AdrSrvSmtp)"
Pour répondre aux variables il est impératif de connaître des données
confidentielles (Login, Mot de passe etc)

J'aimerai simplement ouvrir le gestionnaire de courrier par défaut avec
l'adresse préremplie (style mailto) et une pièce jointe attachée.

Comment faire ?

Merci d'avance.


Peut-être un lanceappliasocié("mailto")
sinon va sur le site de l'asso; il me semble qu'il y a des choses là
dessus ?
Eric

--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gilles G.
In article <bqsa58$qpm$,
says...
Bonjour,
Dans une appli WD75 pour envoyer un mail il faut ouvrir une session:
"EmailOuvreSessionSMTP(COMPTE.Login,COMPTE.AdrSrvSmtp)"
Pour répondre aux variables il est impératif de connaître des données confidentielles
(Login, Mot de passe etc)

J'aimerai simplement ouvrir le gestionnaire de courrier par défaut avec l'adresse
préremplie (style mailto) et une pièce jointe attachée.



Mailto tu ne peux pas avec une pièce jointe.
Il faut que tu utilises un objet ole type mapi.


Exemple :

PROCEDURE SendMail(Adresse,NomDest,MObject, MBody,PieceJointe,NomPJ)
MessageErreur est une chaîne
bOK est un booléen = Vrai
hdlLib est un entier

hRes est un entier

szPieceJointe est une chaîne ASCIIZ sur 255 = PieceJointe
szNomPieceJointe est une chaîne ASCIIZ sur 255 = NomPJ
szSujet est une chaîne ASCIIZ sur 128 = MObject
szBody est une chaîne ASCIIZ sur 1000 = MBody
szAdresse est une chaîne ASCIIZ sur 255 = Adresse
szNomAdresse est une chaîne ASCIIZ sur 128 = NomDest


MAPI_LOGIN_UI est un entier = 0x00000001
MAPI_TO est un entier = 1;

MapiMessage est une structure

ulReserved est un entier
lpszSubject est un entier
lpszNoteText est un entier
lpszMessageTyp est un entier
lpszDateReceived est un entier
lpszConversationID est un entier
flFlags est un entier
lpOriginator est un entier
nRecipCount est un entier
lpRecips est un entier
nFileCount est un entier
lpFiles est un entier
FIN

MapiFileDesc est une structure
ulReserved est un entier
flFlags est un entier
nPosition est un entier
lpszPathName est un entier
lpszFileName est un entier
lpFileType est un entier
FIN

MapiRecipDesc est une structure
ulReserved est un entier
ulRecipClass est un entier
lpszName est un entier
lpszAddress est un entier
ulEIDSize est un entier
lpEntryID est un entier
FIN

sMapiMessage est une MapiMessage
sMapiFileDesc est une MapiFileDesc
sMapiRecipDesc est une MapiRecipDesc


SI bOK ALORS
hdlLib = AppelDLL32("Kernel32","LoadLibraryA","MAPI32.dll")
SI hdlLib<32 ALORS
bOK = Faux
MessageErreur = "Impossible de charger MAPI32.DLL"
hdlLib = 0
FIN
FIN


SI bOK ALORS
SI PieceJointe <> "" ALORS
sMapiFileDesc:ulReserved = Null
sMapiFileDesc:flFlags = 0
sMapiFileDesc:nPosition = 0xFFFFFFFF
sMapiFileDesc:lpszPathName = &szPieceJointe
sMapiFileDesc:lpszFileName = &szNomPieceJointe
lpFileType est un entier

sMapiMessage:nFileCount = 1
sMapiMessage:lpFiles = &sMapiFileDesc
SINON
sMapiMessage:nFileCount = 0
sMapiMessage:lpFiles = Null
FIN

sMapiRecipDesc:ulReserved = Null
sMapiRecipDesc:ulRecipClass = MAPI_TO
sMapiRecipDesc:lpszName = &szNomAdresse
sMapiRecipDesc:lpszAddress = &szAdresse
sMapiRecipDesc:ulEIDSize = Null
sMapiRecipDesc:lpEntryID = Null

sMapiMessage:ulReserved = Null
sMapiMessage:lpszSubject = &szSujet
sMapiMessage:lpszNoteText = &szBody
sMapiMessage:lpszMessageTyp = Null
sMapiMessage:lpszDateReceived = Null
sMapiMessage:lpszConversationID = Null
sMapiMessage:flFlags = Null
sMapiMessage:lpOriginator = Null
sMapiMessage:nRecipCount = 1
sMapiMessage:lpRecips = &sMapiRecipDesc
nFileCount est un entier
lpFiles est un entier

hRes = AppelDLL32("MAPI32.DLL",...
"MAPISendMail",...
Null,...
Handle(),...
&sMapiMessage,...
MAPI_LOGIN_UI,...
Null)
SI hRes<> 0 ALORS
bOK = Faux
MessageErreur = "MAPISendMail Erreur n° "+hRes
FIN

FIN

SI hdlLib>0 ALORS
AppelDLL32("Kernel32","FreeLibrary",hdlLib)
hdlLib = 0
FIN

SI PAS bOK ALORS
TitreSuivant("Fonction : SendMail")
Erreur(MessageErreur)
FIN
RENVOYER bOK



Ce code va provoquer dans outlook express et outlook un warning de prise
de contrôle mapi.
Tu peux le désactiver manuellement dans les applis mails
ou pour outlook express :
(Si tu veux ne le faire que temporairement, passe 0 ou 1 selon que tu
veux activer ou désactiver)
Si tu ne passes rien, alors la fonction te renvoie l'état de la clé.


Fonction WarnOE(Mode=-1)

Clé est une chaîne
Valeur est un entier
ValeurLue est un booléen
Clé=RegistrePremièreSousClé("HKEY_CURRENT_USERIdentities")
Clé=Clé+"SoftwareMicrosoftOutlook Express5.0Mail"
Valeur=RegistreLit(Clé,"Warn on Mapi Send",ValeurLue)

SI ValeurLue ALORS
SI Affecte<>-1 ALORS
RegistreEcrit(Clé,"Warn on Mapi Send",Affecte)
SINON
RENVOYER Valeur
FIN
SINON
RENVOYER -1
FIN
Avatar
R&B
Simon wrote:
Bonjour,
Dans une appli WD75 pour envoyer un mail il faut ouvrir une session:
"EmailOuvreSessionSMTP(COMPTE.Login,COMPTE.AdrSrvSmtp)"
Pour répondre aux variables il est impératif de connaître des données confidentielles
(Login, Mot de passe etc)

J'aimerai simplement ouvrir le gestionnaire de courrier par défaut avec l'adresse
préremplie (style mailto) et une pièce jointe attachée.

Comment faire ?

Merci d'avance.







http://rbesset.net/modules/mydownloads/singlefile.php?lidP

@+ R&B