Bonjour, je souhaiterai envoyer un mail avec une piece jointe en utilisant mon compte outlook sur mon pc.
j'ai trouvé des exemples sur la FAQ mais cela ne fonctionne pas.?
Quelqu'un aurait deja fait ca?
Merci
Bonjour, je souhaiterai envoyer un mail avec une piece jointe en utilisant mon compte outlook sur mon pc.
j'ai trouvé des exemples sur la FAQ mais cela ne fonctionne pas.?
Quelqu'un aurait deja fait ca?
Merci
Explique ce qui ne fonctionne pas, tu as peut-être oublié quelque chose...
Sinon, jette un coup d'oeil aux tutoriels sur Office :
http://dotnet.developpez.com/cours/?...sharp#officecs
j'ai tenté les 2 methodes de la FAQ mais il ya des erreurs de compilations (meme en ajoutant les references)
j'obtiens l'erreur impossible de convertir string en mailAdresss.
la source :http://faqcsharp.developpez.com/inde...#netw_sendmail
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 // Objet mail MailMessage msg = new MailMessage(); // Expéditeur (obligatoire) msg.From = "expediteur@free.f"; // destinataire (il en faut au moins un) msg.To = "atoi@free.fr;alui@free.fr"; // destinataire(s) en copie (facultatif) msg.Cc = "encoreatoi@free.fr"; // Texte du mail (facultatif) msg.Body = "Bonjour\n" + "Ceci est le contenu du mail\n" + "A bientôt"; // Fichier joint si besoin (facultatif) msg.Attachments.Add(new MailAttachment(@"c:\fichierjoint.txt", MailEncoding.UUEncode)); // Serveur SMTP SmtpMail.SmtpServer = "smtp.nerim.fr"; // Envoi du mail SmtpMail.Send(msg);
Ok, je crois deviner où est le problème...
L'API d'envoi de mails a changé entre les versions 1.1 et 2.0 du framework. En 1.1, on utilisait le namespace System.Web.Mail, qui est maintenant obsolète. A partir de la version 2.0, on utilise le namespace System.Net.Mail.
Dans la FAQ, il y a 2 versions du code, apparemment la 2e est supposée être le code pour la version 2.0 du framework, mais ça m'a l'air d'un copier/coller malencontreux... le code est le même que le premier !
Voilà le code "corrigé" pour la V2 :
(J'ai corrigé à la volée sans tester, donc il reste peut-être des erreurs...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 //... using System.Net.Mail; //... [STAThread] static void Main(string[] args) { // Objet mail MailMessage msg = new MailMessage(); // Expéditeur (obligatoire) msg.From = new MailAddress("expediteur@free.fr", "Jean Dupont"); // destinataire (il en faut au moins un) msg.To.Add(new MailAddress("atoi@free.fr", "Marie Durand"); msg.To.Add(new MailAddress("alui@free.fr", "Pierre Dubois"); // destinataire(s) en copie (facultatif) msg.Cc.Add(new MailAddress("encoreatoi@free.fr", "Michel Dugenou"); // Texte du mail (facultatif) msg.Body = "Bonjour\n" + "Ceci est le contenu du mail\n" + "A bientôt"; // Fichier joint si besoin (facultatif) msg.Attachments.Add(new Attachment(@"c:\fichierjoint.txt"); // Serveur SMTP SmtpClient client = new SmtpClient("smtp.nerim.fr"); // Envoi du mail client.Send(msg); }
Je vais de ce pas signaler l'erreur au responsable FAQ
EDIT: par contre attention, cette méthode n'utilise pas Outlook... tu ne retrouveras pas le message envoyé dans ton compte Outlook. Si tu tiens à utiliser Outlook, jette un oeil au lien que j'ai donné dans mon post précédent.
RE-EDIT: il y a un article un peu plus récent qui explique en détails l'envoi de mail en 2.0 :
http://lgmorand.developpez.com/dotnet/mail/
je ne vois pas de doc qui parle de outlook dans le lien que tu m"as donné..![]()
Salut Tomlev,
apres avoir fouiné sur le net j'ai trouvé cette maniere de faire.
Qu'en penses tu, j'ai testé ca marche mais ayant trop peu d'experience sur le sujet je ne suis pas apte a juger de la qualité du code.
Ca peut servir a d'autre en tout cas.
A+
J'en profite pour demander comment trouve ton le repertoire "documents" sous vista (clé de registre...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 try { // Create the Outlook application by using inline initialization. Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); //Create the new message by using the simplest approach. Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); //Add a recipient. // TODO: Change the following recipient where appropriate. Microsoft.Office.Interop.Outlook.Recipient oRecip = (Microsoft.Office.Interop.Outlook.Recipient)oMsg.Recipients.Add("xx@mail.com"); oRecip.Resolve(); //Set the basic properties. oMsg.Subject = "[PJ]"; oMsg.Body = "Veuillez trouver ci joint le document demandé"; //Add an attachment. // TODO: change file path where appropriate String sSource = "C:\\text.txt"; String sDisplayName = "MyFirstAttachment"; int iPosition = (int)oMsg.Body.Length + 1; int iAttachType = (int)Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue; Microsoft.Office.Interop.Outlook.Attachment oAttach = oMsg.Attachments.Add(sSource, iAttachType, iPosition, sDisplayName); // If you want to, display the message. // oMsg.Display(true); //modal //Send the message. oMsg.Save(); oMsg.Send(); //Explicitly release objects. oRecip = null; oAttach = null; oMsg = null; oApp = null; } // Simple error handler. catch (Exception e1) { Console.WriteLine("{0} Exception caught: ", e1); } //Default return value. //return 0;
j'ai regardé très vite, mais ça me semble correct
pour récupérer le répertoire "Mes documents" :
Cet article en parle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part string mesDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
http://morpheus.developpez.com/vsto2/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager