C# 关于实现定时发送QQ邮箱的一些问题

最近再做一个任务,就是指定每个月几点定时发送qq邮件,检查任务产线的完成情况,之前在大学里也做过类似发送邮件获得验证码然后进行验证的某功能,不过也只不过是一些普通文字而已,还是很简单的,这次在工作中相对于还是比较有挑战性。

期间的问题也存在许多,在此记录一下。

首先在真正业务里发送邮件当然不能只是普通的文字,而是许许多多其他信息,这个是最初需要我做到的需求:

 在这一过程中,也还算顺利,慢慢摸索也慢慢做出来了,但是期间也遇到了问题,比如那个图片该如何加载出来呢?我当时是使用Echart绘制的动态数据图表,但是当时我并不知道这样是不行的,做完了后才测试结果发现不行,原因是QQ邮件是不能够编译JS脚本的,当你发送了邮件后,qq邮箱是不会编译出来数据的,这也是一种安全性的防护,当时我就立马删掉了这些,换了方法去完成,那就是只能自己去画图咯,虽然不能编译js,但是我可以再后台将数据与图表绘制好然后再将数据转化为Base64格式然后返回给邮箱,这样就可以识别到图片从而显示出来了。首先去下载Chart的包然后移到项目里,也就相当于WinFrom一样,将数据什么的都写好,画好图后再来一个转Base64码然后返回给这个页面的路径上就能够得到这个图片。最后发送邮件就能识别到Base64码的图并且显示出来了,难点也就是需要学一下Chart的一些属性用法啊,不然确实挺难画出来的。这里推荐一个博主的记录文章,对Chart的属性记录的很详细。

一、参考

c# Chart设置样式 - wenglabs - 博客园

强大的Winform Chart图表控件使用说明 - 走看看

 MemoryStream imageStream = new MemoryStream();

            //Chart画好图后变成PNG格式输出 然后再转Base64格式
            Chart2.SaveImage(imageStream, ChartImageFormat.Png);

            byte[] imageBytes = imageStream.ToArray(); // Convert byte[] to Base64 String
            string base64String = Convert.ToBase64String(imageBytes);

            imageStream.Position = 0;
            
            return base64String;

猜你喜欢

转载自blog.csdn.net/weixin_54629917/article/details/127925039