C# 使用C在电子邮件中发送qrCode#
我使用qrcoder库在c#中生成QR码。我可以用我想要的信息生成代码,但我也想通过电子邮件发送 使用下面的代码我收到了电子邮件,但它不会在其中显示二维码的图像。如果我更改了保存代码的地址,也会出现如下错误: System.Runtime.InteropServices.ExternalException发生GDI+中出现一般错误 代码如下:C# 使用C在电子邮件中发送qrCode#,c#,qr-code,C#,Qr Code,我使用qrcoder库在c#中生成QR码。我可以用我想要的信息生成代码,但我也想通过电子邮件发送 使用下面的代码我收到了电子邮件,但它不会在其中显示二维码的图像。如果我更改了保存代码的地址,也会出现如下错误: System.Runtime.InteropServices.ExternalException发生GDI+中出现一般错误 代码如下: public void GenerateQR(string infoReserva) { QRCodeGenera
public void GenerateQR(string infoReserva)
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(infoReserva, QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
using (Bitmap bitMap = qrCode.GetGraphic(20))
{
bitMap.Save(Server.MapPath("~/Images/qrcode.png"), ImageFormat.Png);
}
MailMessage mm = new MailMessage();
mm.From = new MailAddress("name@exampple.comr");
mm.Subject = "How to email self-generated QR code";
mm.Body = " <html><body> <p> QR code as below</p> <p> <img src='http://localhost:44362//Images/qrcode.png' alt='QR Code'/></p> </body></html> ";
mm.To.Add("name@exampple.com");
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential();
NetworkCred.UserName = "name@exampple.comr";
NetworkCred.Password = "-----";
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
}
public void GenerateQR(字符串信息serva)
{
QRCodeGenerator qrGenerator=新的QRCodeGenerator();
QRCodeData QRCodeData=qrGenerator.CreateQrCode(infoReserva,QRCodeGenerator.ECCLevel.Q);
QRCode QRCode=新的QRCode(qrCodeData);
使用(位图=qrCode.GetGraphic(20))
{
保存(Server.MapPath(“~/Images/qrcode.png”)、ImageFormat.png);
}
MailMessage mm=新邮件();
mm.From=新邮件地址(“name@exampple.comr");
mm.Subject=“如何通过电子邮件发送自创二维码”;
mm.Body=“二维码如下所示””;
mm.至.添加(“name@exampple.com");
mm.IsBodyHtml=true;
SmtpClient smtp=新SmtpClient();
smtp.Host=“smtp.gmail.com”;
smtp.EnableSsl=true;
NetworkCredential NetworkCred=新的NetworkCredential();
NetworkCred.UserName=”name@exampple.comr";
NetworkCred.Password=“------”;
smtp.UseDefaultCredentials=true;
smtp.Credentials=NetworkCred;
smtp.Port=587;
smtp.Send(mm);
}
我的项目代码组织在如下文件夹中:
- 1_实体
- 2_数据访问
- 3_例外情况
- 4_API
- 5_网络应用程序
提前谢谢 无论你做什么,你都会遇到困难,因为你试图发送一个图像,而某个地方会有一个邮件客户端阻止它(链接到服务器上的图像是典型的垃圾邮件发送者伎俩,几乎肯定会被阻止,gmail阻止以数据url发送的图像,但接受内联连接的多部分,在其他地方,你会发现一个设备,可能是一部手机,它不接受嵌入的多部分,但接受数据url。);我会放弃在电子邮件中发送任何图形图片的想法,转而使用可以输出字符或html的QR库,这样您就可以使用黑白块(字符或html元素)来形成QR。不是背书,也没有从属关系,但我知道QRCoder可以输出基于字符的QRs您可以在发件人端创建QR码图像。收件人将无法在其本地主机上看到它。一种方法是将实际图像数据(而不是URL)嵌入标记:查看。