Dépannage des images en ligne dans les e-mails
L'intégration d'images directement dans votre corps de messagerie améliore la lisibilité, mais parfois ces images apparaissent sous forme de X Red. Ce guide fournit une solution.
Voici un exemple de code corrigé pour l'intégration d'images:
<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg(); MySMTPClient.Send(mailWithImg); // Ensure your SMTPClient is properly configured. private MailMessage GetMailWithImg() { MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; mail.AlternateViews.Add(GetEmbeddedImage("c:/image.png")); mail.From = new MailAddress("yourAddress@yourDomain"); mail.To.Add("recipient@hisDomain"); mail.Subject = "yourSubject"; return mail; } private AlternateView GetEmbeddedImage(string filePath) { LinkedResource res = new LinkedResource(filePath); res.ContentId = Guid.NewGuid().ToString(); string htmlBody = $"<img src=\"cid:{res.ContentId}\"></img>"; // Note the escaped quotes AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html); alternateView.LinkedResources.Add(res); return alternateView; }</code>
Ce code amélioré utilise AlternateViews
pour intégrer l'image dans l'e-mail HTML. Un ContentId
unique est affecté au LinkedResource
, référencé dans l'attribut img
TAG du HTML src
. Le AlternateView
assure la compatibilité entre différents clients de messagerie. Cette approche intègre de manière fiable des images, empêchant le problème rouge X. N'oubliez pas de remplacer "c:/image.png"
, "yourAddress@yourDomain"
et "recipient@hisDomain"
par votre chemin de fichier réel et les adresses e-mail.
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!