Heim >Backend-Entwicklung >C++ >Wie kann ich mit C# Bilder direkt in den Text einer E-Mail 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!