电子邮件中的ASP.NET MVC图像未显示

时间:2017-03-16 13:46:14

标签: asp.net asp.net-mvc email

我有这段代码生成QR码以及我在生成QR码后将其显示在电子邮件中并将其发送出去后我想要做的事情。我能够生成QR码并发送电子邮件。我的问题是QR码的图像有时不会显示在电子邮件中。这是我的测试......

Gmail - 无图片

雅虎 - QR码图片出现

展望 - 无图像

Hotmail - 没有图片

Apple Mail - 当我最初打开电子邮件时没有图像,如果我再次打开它,则会显示QR码图像。

移动 - 出现QR码图片。

以下是生成QR码的代码:

Random rand = new Random();

            string code = emailAddress + rand.Next();
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
            System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
            imgBarCode.Height = 150;
            imgBarCode.Width = 150;
            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    byte[] byteImage = ms.ToArray();
                    imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                }

                var qrCode = code;
            }

以下是我发送电子邮件的方式......

var message += "<img src='" + imgBarCode.ImageUrl + "' />";

            using (SmtpClient client = new SmtpClient("xxx.xxx.x.xx"))
            {
                MailAddress to = new MailAddress(email);
                MailAddress from = new MailAddress("example@domain.com");
                MailMessage email = new MailMessage(from, to);
                email.Subject = "Subject";
                email.Body = message;
                email.IsBodyHtml = true;
                try
                {
                    client.Send(email);
                }
                catch (Exception ex)
                {
                    Console.Write(ex);
                }
            }

我做错了什么?为什么我的电子邮件中的图片没有显示?

0 个答案:

没有答案