Heim > Backend-Entwicklung > C++ > Warum wird mein Inline -E -Mail -Bild als rotes 'x' anstelle des Bildes angezeigt?

Warum wird mein Inline -E -Mail -Bild als rotes 'x' anstelle des Bildes angezeigt?

Patricia Arquette
Freigeben: 2025-01-25 01:36:10
Original
923 Leute haben es durchsucht

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

Lösen Sie das Problem, dass das Inline-Bild im E-Mail-Text als rotes „X“ angezeigt wird

Das Einbetten von Bildern in den E-Mail-Text statt als Anhänge kann die visuelle Wirkung und das Benutzerinteresse der E-Mail erheblich verbessern. Es ist jedoch frustrierend zu sehen, dass Inline-Bilder als rotes „X“ anstelle des beabsichtigten Inhalts angezeigt werden.

Problembeschreibung

Der von

bereitgestellte Code versucht, mit LinkedResource ein Inline-Bild einzufügen, aber das Ergebnis zeigt, dass es sich bei dem Bild um einen Anhang handelt und der Inline-Teil fehlt oder als rotes Kreuz angezeigt wird.

Lösung

Eine effektive Möglichkeit, ein Bild in den Text einer E-Mail einzubetten, ist die Verwendung der Klassen AlternateView und LinkedResource, wie im aktualisierten Code unten gezeigt:

<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>
Nach dem Login kopieren

Mit dieser Methode lädt der E-Mail-Client automatisch das Inline-Bild und zeigt es im Textkörper der E-Mail an, wodurch das Problem mit dem roten „X“ gelöst wird.

Das obige ist der detaillierte Inhalt vonWarum wird mein Inline -E -Mail -Bild als rotes 'x' anstelle des Bildes angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage