我一直在與帶有圖像的 HTML 電子郵件作斗爭(zhēng)。我讓他們?cè)谧烂?Thunderbird 和 Outlook 上工作,但 Android 電子郵件顯示損壞的圖像。我知道它可以工作,因?yàn)槭褂?Outlook 創(chuàng)建的電子郵件有效,并且與我正在創(chuàng)建的電子郵件結(jié)構(gòu)非常相似。顯然它不一樣(否則我的會(huì)起作用?。?,但我看不到我錯(cuò)過了什么。我沒有過多地減少代碼,因?yàn)槲蚁M腥藭?huì)看到 LinkedResource 或 AlternateResource 的問題,但它可能會(huì)更大。HTML 視圖中包含圖像標(biāo)記,可以在桌面上正常工作。它在 Android 上顯示替代文本,帶有損壞的圖像圖標(biāo)。任何幫助將不勝感激。 bool SendEmail() { string fullBody = GenerateHeader() + Body + GenerateFooter(); string textBody = RemoveHTML(Body); AlternateView avHtml = AlternateView.CreateAlternateViewFromString(fullBody, Encoding.UTF8, MediaTypeNames.Text.Html); avHtml.TransferEncoding = TransferEncoding.QuotedPrintable; MailMessage message = new MailMessage(); message.IsBodyHtml = true; message.Subject = BaseSubject + Subject; message.Body = textBody; message.AlternateViews.Add(avHtml); message.AlternateViews.Add(avText); message.Headers.Add("Message-Id", String.Format("<{0}@{1}>", Guid.NewGuid().ToString(), "company.com.au")); var assembly = Assembly.GetExecutingAssembly(); string resourceName = "app.UI.EmbeddedItems.logo.png"; using (Stream stream = assembly.GetManifestResourceStream(resourceName)) { LinkedResource inline = new LinkedResource(stream, "image/png"); inline.ContentId = LogoId; inline.ContentType.Name = "logo.png"; inline.ContentLink = new Uri("cid:" + inline.ContentId); inline.TransferEncoding = TransferEncoding.Base64; inline.ContentType.MediaType = "image/png"; avHtml.LinkedResources.Add(inline);
來自 C# 中生成的電子郵件的鏈接資源圖像未顯示在 Android 電子郵件上
慕標(biāo)琳琳
2021-11-07 19:32:04