VOUS AVEZ DIT X-MAPI ? (EXTENDED MAPI)

Aghnar69 Messages postés 5 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 30 novembre 2007 - 30 nov. 2007 à 17:37
Omarovskis Messages postés 2 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 21 mars 2012 - 21 mars 2012 à 22:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30236-vous-avez-dit-x-mapi-extended-mapi

Omarovskis Messages postés 2 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 21 mars 2012
21 mars 2012 à 22:14
Bonjour Selim,

je trouve que votre code est très important, mais il y aura t-il moyen pour ne pas passer par Outlook?

En fait je veux me connecter directement au serveur Exchange

Cordialement,

Tahar LOUKIL
amrounix Messages postés 78 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 12 juillet 2010
8 janv. 2011 à 00:17
Bonjour,
Ce programme je l'ai écrit il y'a 5 ans ... (déjà !) Je ne savais même pas que ce programme marchait encore (version d'Outlook) :)
A cette époque, j'avais complété mon code avec l'envoi de mail, récupération de pièce jointe ...etc... Il faut que je recherche dans mes archives , je vous tiendrais au courant dès que je retombe dessus.

Cordialement,

Selim A.
TheBlueSky Messages postés 1 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 7 janvier 2011
7 janv. 2011 à 17:57
Bonjour,

Super source, qui tombe bien car je voulais utiliser ce fameux Extended MAPI pour envoyer des mails par Outlook sans ce message d'avertissement.

Je tâtonne pas mal, mais j'avance bien en m'inspirant de ton code...

Par contre je bloque juste avant l'envoi du mail. Au moment d'ajouter les destinataires, j'ai le retour 'Paramètre incorrect'.

Voici mon bout de code (en Delphi 2009) :
var PropArray : PSPropValueArray;
AddrList : PADRLIST;
begin
(...)

MAPIAllocateBuffer(sizeof(TSPropValueArray)+sizeof(TSPropValue)*3,Pointer(PropArray));

PropArray[0].ulPropTag := PR_ADDRTYPE;
PropArray[0].Value.lpszA := AnsiString('SMTP');

Idx := 0;
PropArray[Idx+1].ulPropTag := PR_EMAIL_ADDRESS;
PropArray[Idx+1].Value.lpszA := AnsiString('lemail@host.com');

PropArray[Idx+2].ulPropTag := PR_RECIPIENT_TYPE;
PropArray[Idx+2].Value.ul := MAPI_TO;

MAPIAllocateBuffer(SizeOf(PADRLIST), Pointer(AddrList));

AddrList.cEntries := 1;
AddrList.aEntries[0].cValues := 3;
AddrList.aEntries[0].rgPropVals := PSPropValue(PropArray);

hr := Mail.ModifyRecipients(MODRECIP_ADD, AddrList);
if Failed(hr) then raise Exception.Create('Mail.ModifyRecipients : '+SysErrorMessage(hr));

hr := Mail.SubmitMessage(MAPI_DEFERRED_ERRORS);
if Failed(hr) then raise Exception.Create('Mail.SubmitMessage : '+SysErrorMessage(hr));

Je me doute que c'est ma façon d'affecter mes chaines. J'ai essayé avec des MAPIAllocateMore, mais j'ai toujours la même erreur...

Je trouve très peu d'exemples sur le net, presque tous en C ou .NET.

Un coup de main serait vraiment très apprécié !

Merci d'avance...
Aghnar69 Messages postés 5 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 30 novembre 2007
30 nov. 2007 à 17:37
Salut,

il se trouve que je cherche à utiliser les Notes d'Outlook à partir de mon application, sans passer directement par Outlook.

Je pense que ton prog est un début de raisonnemet intéressant pour moi mais il me manque des éléments ...

On peut en discuter ?
Rejoignez-nous