微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 ASP.NET Core MVC 中通过电子邮件向客户发送唯一预订二维码的最佳实践

如何解决在 ASP.NET Core MVC 中通过电子邮件向客户发送唯一预订二维码的最佳实践

我正在使用 ASP.NET Core MVC 开发一个房间预订网站。要求是每次客户进行预订时,系统都会分配一个唯一的预订 ID 并为该唯一预订编号生成二维码,并发送带有该二维码的电子邮件(我使用的是 HTML 电子邮件模板)。客户会来到工作人员面前扫描二维码进行进一步的处理。我生成了唯一编号,创建了二维码,但未能通过电子邮件发送此代码。我可以从控制器发送该二维码进行查看,但是当我附加该二维码时,它不会显示在电子邮件中。

我在谷歌上阅读了一些问题,大多数人说我们必须将生成二维码保存在服务器目录中,然后在电子邮件中发送参考。但我想知道如果我一个月有 1000 个预订,那么我的服务器必须在一个文件夹中有 1000 张二维码图像,而且以后每天图像的数量都会增加

我可以将图像保存在服务器上并通过电子邮件发送,但我想知道实现此任务的最佳做法是什么,因为许多公司已经在使用此功能。 任何建议和指导将不胜感激。

生成二维码的练习码 控制器代码

Random r = new Random();
        int number = r.Next(10,100000);
        using (MemoryStream ms = new MemoryStream())
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(number.ToString(),QRCodeGenerator.Ecclevel.Q);
            QRCode qrCode = new QRCode(qrCodeData);
            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                bitMap.Save(ms,ImageFormat.Png);
                ViewBag.QRCodeImage = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray());
                ViewBag.Number = number;
            }
        }

测试视图代码

@if (ViewBag.QRCodeImage != null)
                {
                    <h3>Booking Number is @ViewBag.Number</h3>
                    <img src="@ViewBag.QRCodeImage" alt="" style="height:150px;width:150px" />
                }

Is is working fine and showing me the QR Code in my View

但是当我在电子邮件中发送此二维码时,它没有显示在电子邮件中。

控制器中电子邮件的实际代码

 string qrImagePath = "";
                using (MemoryStream ms = new MemoryStream())
                {
                    QRCodeGenerator qrGenerator = new QRCodeGenerator();

                    QRCodeData qrCodeData = qrGenerator.CreateQrCode(number.ToString(),QRCodeGenerator.Ecclevel.Q);
                    QRCode qrCode = new QRCode(qrCodeData);
                    using (Bitmap bitMap = qrCode.GetGraphic(20))
                    {
                        bitMap.Save(ms,ImageFormat.Png);
                        qrImagePath = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray());
                        ViewBag.Number = number;
                    }
                }
                MailText = MailText.Replace("[qrCode]",qrImagePath);
                EmailHelper emailHelper = new EmailHelper();
                bool emailResponse = emailHelper.SendEmail(model.Email,"Booking",MailText);

电子邮件助手正在发送电子邮件,我可以在收件箱中看到新发送的电子邮件,但未显示二维码图片

QR Code Image is not displaying in Email and I cannot see the src attribute of an image in the email.

如果有人能指导我,我将非常感谢。 祝你有美好的一天。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?