L'intégration directe d'images dans le corps d'un e-mail à l'aide de C# nécessite une approche spécifique, car les pièces jointes standard d'un e-mail ne s'affichent que sous forme d'espaces réservés. Ce code C# affiné montre comment intégrer correctement des images :
<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg(); MySMTPClient.Send(mailWithImg); // Ensure MySMTPClient is properly configured private MailMessage GetMailWithImg() { MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; mail.AlternateViews.Add(GetEmbeddedImage("c:/image.png")); // Replace with your image path mail.From = new MailAddress("yourAddress@yourDomain"); // Replace with your email address mail.To.Add("recipient@hisDomain"); // Replace with recipient's email address mail.Subject = "yourSubject"; // Replace with your email subject return mail; } private AlternateView GetEmbeddedImage(String filePath) { LinkedResource res = new LinkedResource(filePath); res.ContentId = Guid.NewGuid().ToString(); string htmlBody = $"<img src=\"cid:{res.ContentId}\" />"; // Note the escaped quotes AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html); alternateView.LinkedResources.Add(res); return alternateView; }</code>
Ce code exploite les classes AlternateView
et LinkedResource
. LinkedResource
associe le fichier image à un ContentId
unique. Le code HTML contenu dans AlternateView
fait ensuite référence à ce ContentId
, garantissant que l'image est affichée en ligne. Cette méthode évite l’espace réservé « x rouge » souvent observé avec les images jointes. N'oubliez pas de remplacer les valeurs d'espace réservé par vos données réelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!