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
Patricia ArquetteOriginal
2025-01-25 01:36:10996Durchsuche

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>

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!

Stellungnahme:
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