Maison > développement back-end > C++ > Pourquoi mon image de messagerie en ligne est-elle affichée comme un «x» rouge au lieu de l'image?

Pourquoi mon image de messagerie en ligne est-elle affichée comme un «x» rouge au lieu de l'image?

Patricia Arquette
Libérer: 2025-01-25 01:36:10
original
923 Les gens l'ont consulté

Why is My Inline Email Image Showing as a Red 'X' Instead of the Picture?

Résoudre le problème de l'image en ligne dans le corps de l'e-mail affichée sous la forme d'un « X » rouge

L'intégration d'images dans le corps de l'e-mail plutôt que sous forme de pièces jointes peut améliorer considérablement l'impact visuel et l'engagement des utilisateurs de l'e-mail. Cependant, il est frustrant de voir les images en ligne apparaître sous la forme d'un « X » rouge au lieu du contenu prévu.

Description du problème

Le code fourni par

tente d'utiliser LinkedResource pour insérer une image en ligne, mais le résultat montre que l'image est une pièce jointe et que la partie en ligne est manquante ou affichée sous la forme d'une croix rouge.

Solution

Un moyen efficace d'intégrer une image dans le corps d'un e-mail consiste à utiliser les classes AlternateView et LinkedResource, comme indiqué dans le code mis à jour ci-dessous :

<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg();
MySMTPClient.Send(mailWithImg); //* 请先设置好您的SMTPClient!

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}'/>"";
    AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);
    alternateView.LinkedResources.Add(res);
    return alternateView;
}</code>
Copier après la connexion

Avec cette méthode, le client de messagerie chargera automatiquement l'image en ligne et l'affichera dans le corps du courrier, résolvant ainsi le problème du « X » rouge.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal