Envoi de Mail par Delphi au travers d'Outlook
Bonjour,
Mon programme fabrique des fichiers pdf pour des clients, je désire suite à la création du pdf envoyer un message avec en pièce jointe le fichier. J'ai consulter la doc (forum) et voici le corps de mon programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| CoInitialize(nil);
Outlook.Connect;
EspaceDeNom := Outlook.GetNamespace('MAPI');
EspaceDeNom.Logon('', '', False, False);
// Crée un élément MailItem représentant un courrier électronique
UnMail:=Outlook.CreateItem(olMailItem) as MailItem;
// Ajoute un ou plusieurs destinataires
UnMail.Recipients.Add(Adresse Client);
UnMail.Subject := 'Mon Sujet';
// Ajoute un retour chariot pour séparer le corps du message des piéces jointes
UnMail.Body := 'Corps de mon message';
//Ajoute une ou plusieurs pièces jointes
UnMail.Attachments.Add(Monfichier, olByValue, EmptyParam, EmptyParam);
// Place le mail dans la boîte d'envoi, mais ne l'envoi pas.
UnMail.Send;
EspaceDeNom.Logoff;
Outlook.Quit;
//CoUnInitialize; |
Comme vous voyez, je n'ai rien inventé ! J'ai quelques soucis tout de même :
1 / Outlook m'envoie deux messages de sécurité. Le premier pour me demander combien de temps je veux permettre l'utilisation d'outlook et le second pour confirmer l'envoie du mail.
Que faut-il faire pour ne pas avoir ces deux messages ?
2 / Si Outlook est ouvert sur le poste de l'utilisateur, il est fermé automatiquement.
Comment faire pour tester si outlook est déjà ouvert, afin de le fermer s'il n'était pas déjà ouvert ?
3 / J'ai mis "CoUnInitialize" en commentaire car j'ai un message d'erreur sinon
4 / En posant ce bout de code dans l'unité, il y a un problème de compilation sur cette unité lorsque j'écris :
Except
raise Exception.create('Prévenir la maintenance');
End;
Le message est "Type Objet ou Class requis".
Problème que je n'ai pas dans mes autres forms ou unités (je n'y utilise pas la création de mail)
Merci pour toutes vos précisions