使用 C# 直接在電子郵件正文中嵌入圖像需要特定的方法,因為標準電子郵件附件僅顯示為佔位符。 這個精煉的 C# 代碼演示瞭如何正確嵌入圖像:
<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>
此代碼利用了 AlternateView
和 LinkedResource
類。 LinkedResource
將圖像文件與唯一的 ContentId
相關聯。然後 AlternateView
中的 HTML 引用此 ContentId
,確保圖像內聯顯示。 此方法可以防止附加圖像中常見的常見“紅x”佔位符。 請記住將佔位符值替換為您的實際數據。
以上是如何使用C#將圖像直接嵌入電子郵件的正文中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!