我有这段代码生成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);
}
}
我做错了什么?为什么我的电子邮件中的图片没有显示?