Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1191 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] Joindre une image à un mail avec C#

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Joindre une image à un mail avec C#

n°1887982
benhetfiel​d
et la lumière fut
Posté le 26-05-2009 à 12:36:01  profilanswer
 

Bonjour :)
j'ai créé une petite appli web très light pour tester l'envoie de mail via une page asp.net.
le code behind est codé en c#.
 
L'application est en fait un bête formulaire web qui demande nom, prénom, message, destinataire du message, etc et qui envoie un mail personnalisé en HTML au destinataire.
 
L'envoi fonctionne très bien, la personnalisation aussi.
 
J'ai ensuite cherché à insérer une image dans le mail (typiquement un logo). J'ai un peu galéré, mais après avoir passé quelques heures sur le code je joins mon image comme ceci :

Code :
  1. Bitmap myLogo = new Bitmap(Resources.email_resources.logo);
  2. if (!File.Exists(Server.MapPath("logo.png" ))) myLogo.Save(Server.MapPath("logo.png" ));


Comme on peut le constater mon logo se trouve dans un fichier de resources. Si je cherche à joindre le fichier dans l'email :

Code :
  1. Attachment myLogoAttachment = new Attachment(Server.MapPath("logo.png" ));
  2. email.Attachments.Add(myLogoAttachment);


Ça, ça fonctionne nickel :)
Seulement, une image est créée en dur sur le disque du côté serveur, et ça ça me plait moyen moyen...Pour l'instant ça va c'est une appli bidon, mais si je crée un formulaire qui est destiné à être rempli plusieurs fois par jour ça devient la misère. J'ai donc vu qu'on pouvait utiliser un MemoryStream. Je m'y suis donc pris ainsi :

Code :
  1. Bitmap myLogo = new Bitmap(Resources.email_resources.logo);
  2. MemoryStream myLogoStream = new MemoryStream();
  3. myLogo.Save(myLogoStream, ImageFormat.Png);
  4. Attachment myLogoAttachement2 = new Attachment(myLogoStream, "image/png" );
  5. email.Attachments.Add(myLogoAttachment2);


 
Mais là, lorsque je reçois le mail, la pièce jointe pèse 0ko  :(
J'ai essayé pas mal de syntaxes, sans succès...J'ai été regarder la définition de cette classe "Attachment" mais pour autant que je sache je ne vois pas ce que je fais de mal :o Les exemples sur le net, d'après lesquels je me suis inspiré, ne m'aide pas non plus à résoudre mon cas ><
 
Quelqu'un aurait une petite idée ?
 
Merci d'avance !


Message édité par benhetfield le 26-05-2009 à 14:16:53

---------------
You take dollars ? You take dollars ? You take ?
mood
Publicité
Posté le 26-05-2009 à 12:36:01  profilanswer
 

n°1887991
moi23372
Posté le 26-05-2009 à 13:12:19  profilanswer
 

voila comment je joins une image en attachment d'un mail en C#.  
ça marche très bien.
 
Attachment data = new Attachment(new MemoryStream(TON_BYTE_ARRY), MediaTypeNames.Application.Octet);
mail.Attachments.Add(data);


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1888032
benhetfiel​d
et la lumière fut
Posté le 26-05-2009 à 14:15:44  profilanswer
 

moi23372 a écrit :

voila comment je joins une image en attachment d'un mail en C#.  
ça marche très bien.
 
Attachment data = new Attachment(new MemoryStream(TON_BYTE_ARRY), MediaTypeNames.Application.Octet);
mail.Attachments.Add(data);


 
Nickel merci ça fonctionne :)
je me demande bien pourquoi le MemoryStream déjà instancié ne fonctionne pas ceci...Une subtilité c# je suppose :o d'autant que quand je récupère myLogoStream.Length, j'ai bien la taille de l'image...
 
Enfin bref de toutes façons merci pour la solution ! En plus rapide :p


---------------
You take dollars ? You take dollars ? You take ?

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] Joindre une image à un mail avec C#

 

Sujets relatifs
ouvrir une image en mode binaire ?[RESOLU] - [JTree] Activer noeud par un clic
Insertion image dans une richtextbox[résolu] Regex pour identifier les bons couples span /span
pb pour fermer une boucle (calculatrice)Redéfinir la position du point d'origine d'une image
Doc automatique en Objective-C?Background image qui marche dans IE mais pas dans FF
Background image qui marche dans IE mais pas dans FFCompilateur C
Plus de sujets relatifs à : [Résolu] Joindre une image à un mail avec C#


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR