Comment utiliser la fonction ci-jointe

Résolu
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 18 juin 2009 à 00:34
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 21 juin 2009 à 15:21
Bonjour,

Je pilote Outlook (version 2003) via mon application.

J'ai besoin d'ouvrir une fenetre nouveau message d'Outook avec le mail du destinataire qui s'affiche (il se trouve dans ma base).

Pour ce faire, j'ai trouvé le code suivant (dans la faq delphi) mais je n'arrive pas à utiliser cette fonction ci-dessous car elle demande de saisir un "Temail" alors que moi je souhaite saisir un string (l'adresse de mon contact).

Aussi, je sais pas trop quoi faire.

Merci par avance pour votre aide précieuse.


Comment créer un mail avec OutLook (version 2)? [haut]

auteur : Charette
Le code suivant vous permet de créer un nouveau mail avec OutLook à partir de Delphi.
Le code n'effectue aucune vérification notamment en ce qui est du format des adresses mails de destination.
Cette tâche est laissée au soin du lecteur.

type

//Enumération qui décrit le niveau de priorité du mail
enumImportance=(Bas=olImportanceLow,Normal=olImportanceNormal,Haut=olImportanceHigh);

//Structure qui décrit entièrement le mail à envoyer
TEmail = record
dDateRecept : TDateTime;
dDateCreation : TDateTime;
sSenderName : String;
sSenderMail : String;
sCC : String;
sDestinataires : String;
sSujet : String;
sContenu : String;
iPriorite : enumImportance;
iSize : integer; // en octet
iNbPiecesJointes : integer;
tCheminPiecesJointes : array of string;
end;

function TOutlook.CreerEmail(Mail : TEmail): boolean;
var
vMail : variant;
i : integer;
vRecipient : variant;
lTemp : TStringList;
begin
Result := true;
try
//Création du mail
vMail := vApplication.CreateItem(0);
//Ajout des destinataires
//On pourra éventuellement tester le format des adresses
//ainsi que s'assurer que celles-ci sont séparées par un ;
vRecipient := vMail.Recipients.Add(Mail.sDestinataires);
vRecipient.Type := 1;
if Mail.sCC <> '' then
begin
lTemp := TStringList.Create;
lTemp.Delimiter := ';';
lTemp.DelimitedText := Mail.sCC;
for i := 0 to lTemp.Count - 1 do
begin
vRecipient := vMail.Recipients.Add(lTemp.Strings[i]);
vRecipient.Type := 2;
end;
lTemp.Free;
end;
//Ajout du sujet
vMail.Subject := Mail.sSujet;
//Ajout de la priorité
vMail.Importance := Integer(Mail.iPriorite);
//Ajout de pièce jointe
for i := 0 to Mail.iNbPiecesJointes -1 do
begin
vMail.Attachments.Add(Mail.tCheminPiecesJointes[i]);
end;
//Affichage de l'Email
vMail.Display;
except
Result := false;
end;
end;

2 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
18 juin 2009 à 07:40
salut la réponse est dans ta question :

TEmail = record
  dDateRecept : TDateTime;
  dDateCreation : TDateTime;

  sSenderName : String;
  sSenderMail : String;
  sCC : String;

  sDestinataires : String;
  sSujet : String;
  sContenu : String;
  iPriorite
: enumImportance;
  iSize : integer; // en octet
  iNbPiecesJointes :
integer;
  tCheminPiecesJointes : array of string;
end;

tu remplis un record :
var MonTEmail: TEmail;
begin
with MonTMail do
begin
sDestinataires:= 'juliodelphi@c-s.com';
sSujet:= 'Test de mail';
... etc
end;
end;

viola en gros, tu as compris ?
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
21 juin 2009 à 15:21
Bonjour.

Désolé d'avoir un peu mis de temps à répondre.

Je te confirme que ta procédure fonctionne trés bien.

Un grand merci.
Rejoignez-nous