亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

來自 C# 中生成的電子郵件的鏈接資源圖像未顯示在 Android 電子郵件上

來自 C# 中生成的電子郵件的鏈接資源圖像未顯示在 Android 電子郵件上

C#
慕標琳琳 2021-11-07 19:32:04
我一直在與帶有圖像的 HTML 電子郵件作斗爭。我讓他們在桌面 Thunderbird 和 Outlook 上工作,但 Android 電子郵件顯示損壞的圖像。我知道它可以工作,因為使用 Outlook 創建的電子郵件有效,并且與我正在創建的電子郵件結構非常相似。顯然它不一樣(否則我的會起作用?。?,但我看不到我錯過了什么。我沒有過多地減少代碼,因為我希望有人會看到 LinkedResource 或 AlternateResource 的問題,但它可能會更大。HTML 視圖中包含圖像標記,可以在桌面上正常工作。它在 Android 上顯示替代文本,帶有損壞的圖像圖標。任何幫助將不勝感激。        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);
查看完整描述

1 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

結果證明問題不在于電子郵件的構造,而在于 HTML 本身。圖像標簽如下所示:

<img id='Logo.png' alt='Logo' src='cid:LogoId' />

這在桌面郵件客戶端上運行良好,但不會在 Android 郵件應用程序或適用于 Android 的 Google 郵件應用程序上顯示圖像。為了使其工作,需要用雙引號替換單引號。

這有效:

<img id="Logo.png" alt="Logo" src="cid:LogoId" />

更改 GenerateHeader 在 img 標簽中使用雙引號而不是單引號解決了這個問題。對我來說沒有意義,但它有效。


查看完整回答
反對 回復 2021-11-07
  • 1 回答
  • 0 關注
  • 215 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號