Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C在电子邮件中发送qrCode#_C#_Qr Code - Fatal编程技术网

C# 使用C在电子邮件中发送qrCode#

C# 使用C在电子邮件中发送qrCode#,c#,qr-code,C#,Qr Code,我使用qrcoder库在c#中生成QR码。我可以用我想要的信息生成代码,但我也想通过电子邮件发送 使用下面的代码我收到了电子邮件,但它不会在其中显示二维码的图像。如果我更改了保存代码的地址,也会出现如下错误: System.Runtime.InteropServices.ExternalException发生GDI+中出现一般错误 代码如下: public void GenerateQR(string infoReserva) { QRCodeGenera

我使用qrcoder库在c#中生成QR码。我可以用我想要的信息生成代码,但我也想通过电子邮件发送

使用下面的代码我收到了电子邮件,但它不会在其中显示二维码的图像。如果我更改了保存代码的地址,也会出现如下错误:

System.Runtime.InteropServices.ExternalException发生GDI+中出现一般错误

代码如下:

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_网络应用程序
前4个文件夹是应用程序的后端,名为WebApp的文件夹中有我的代码和应用程序的前端,在这个文件夹中我创建了图像文件夹 您知道用二维码发送此电子邮件的最佳方式是什么吗


提前谢谢

无论你做什么,你都会遇到困难,因为你试图发送一个图像,而某个地方会有一个邮件客户端阻止它(链接到服务器上的图像是典型的垃圾邮件发送者伎俩,几乎肯定会被阻止,gmail阻止以数据url发送的图像,但接受内联连接的多部分,在其他地方,你会发现一个设备,可能是一部手机,它不接受嵌入的多部分,但接受数据url。);我会放弃在电子邮件中发送任何图形图片的想法,转而使用可以输出字符或html的QR库,这样您就可以使用黑白块(字符或html元素)来形成QR。不是背书,也没有从属关系,但我知道QRCoder可以输出基于字符的QRs

您可以在发件人端创建QR码图像。收件人将无法在其本地主机上看到它。一种方法是将实际图像数据(而不是URL)嵌入标记:查看。