Heim >Backend-Entwicklung >C++ >Wie kann ich mit C# Bilder direkt in den Text einer E-Mail einbetten?

Wie kann ich mit C# Bilder direkt in den Text einer E-Mail einbetten?

Barbara Streisand
Barbara StreisandOriginal
2025-01-25 01:27:11462Durchsuche

How Can I Embed Images Directly into the Body of an Email Using C#?

Bilder in E -Mail -Körper mit C

einbetten

Die direkte Einbetten von Bildern in den Körper einer E -Mail mit C# erfordert einen bestimmten Ansatz, da Standard -E -Mail -Anhänge nur als Platzhalter angezeigt werden. Dieser raffinierte C# -Coder zeigt, wie man Bilder korrekt einbettet:

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

Dieser Code nutzt die Klassen AlternateView und LinkedResource. LinkedResource assoziiert die Bilddatei mit einem eindeutigen ContentId. Das HTML innerhalb AlternateView verweist dann auf dieses ContentId, um sicherzustellen, dass das Bild inline angezeigt wird. Diese Methode verhindert, dass der gemeinsame "rote X" -Plampenhalter häufig mit angehängten Bildern zu sehen ist. Denken Sie daran, Platzhalterwerte durch Ihre tatsächlichen Daten zu ersetzen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit C# Bilder direkt in den Text einer E-Mail einbetten?. 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