Comment intégrer un flux d'images à MailMessage
Je vais avoir quelques difficultés à l'incorporation d'une image par les Propriétés.Ressources pour un MailMessage, actuellement, l'image ne s'affiche pas dans l'e-mail que je reçois.
J'ai réussi à intégré l'image à partir d'un emplacement de répertoire, mais préférez si l'image est venu à partir de la mémoire/de l'application.
Voici une version simplifiée de ce que je suis en train de faire.
Bitmap b = new Bitmap(Properties.Resources.companyLogo);
MemoryStream logo = new MemoryStream();
b.Save(logo, ImageFormat.Jpeg);
MailMessage newEmail = new MailMessage(from, to);
newEmail.Subject = subject;
newEmail.IsBodyHtml = true;
LinkedResource footerImg = new LinkedResource(logo, "image/jpeg");
footerImg.ContentId = "companyLogo";
AlternateView foot= AlternateView.CreateAlternateViewFromString(body + "<p> <img src=cid:companyLogo /> </p>", null, "text/html");
foot.LinkedResources.Add(footerImg);
newEmail.AlternateViews.Add(foot);
SmtpClient server = new SmtpClient(host, port);
server.Send(newEmail);
source d'informationauteur fluf
Vous devez vous connecter pour publier un commentaire.
Ok, j'ai résolu le problème.
Au lieu d'utiliser l'image BitMap enregistrer méthode que j'ai converti l'image BitMap en Byte[] et a donné le flux de mémoire le Byte[]
Ne fonctionne pas :
N'Travail:
Je pense qu'il a quelque chose à voir avec l'image Bitmap.Méthode Save, dans le MSDN lib il est mentionné que le flux doit avoir un offset de 0.
Après la sauvegarde, vous avez à "chercher" l'MemoryStream remonte au début.
Essayer de regarder ici:
http://www.eggheadcafe.com/community/aspnet/2/10219822/send-mail-with-atttached-image.aspx
À partir du lien ci-dessus:
Au lieu d'ajouter le "logo" de Ressources, j'ai ajouté directement dans le projet et de définir à construire comme une "Ressource Incorporée".
Puis à l'aide du Système.De la réflexion.Assymbly je peux le faire (je suppose) comme un Ruisseau: