VB.NET邮件群发纯htlm二维码
发送邮件采用了frame的System.Net.Mail
Dim msg As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
msg.To.Add(mailToStr)
msg.From = New MailAddress("liuc@qq.com", "Liuc", System.Text.Encoding.UTF8)
msg.Subject = "报名确认函"
msg.SubjectEncoding = System.Text.Encoding.UTF8
msg.Body = "报名确认函"
msg.BodyEncoding = System.Text.Encoding.UTF8
msg.IsBodyHtml = True '是否是HTML邮件
msg.Priority = MailPriority.High
Dim View As AlternateView = AlternateView.CreateAlternateViewFromString(body, System.Text.Encoding.UTF8, "text/html")'在html中插入本地图片
Dim body As String = ""
body = body + "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN' >"
body = body + "<HTML><HEAD><META http-equiv=Content-Type content='text/html; charset=utf-8'></HEAD><BODY>"
body = body + "<DIV><img src='cid:qrCode'></DIV>"
body = body + "</BODY></HTML>"
Dim View As AlternateView = AlternateView.CreateAlternateViewFromString(body, System.Text.Encoding.UTF8, "text/html")'Dim MS As MemoryStream = New MemoryStream()
'MS = bitmapToGifMemoryStream(img)
Dim imgPathStr As String = "D:\123456.bmp"Dim lrImage As LinkedResource = New LinkedResource(imgPathStr, "image/gif")
lrImage.ContentId = "qrCode"
View.LinkedResources.Add(lrImage)
msg.AlternateViews.Add(View)
'上传本地图片为附件
msg.Attachments.Add(New Attachment(imgPathStr, "image/gif"))Dim client As SmtpClient = New SmtpClient()
client.UseDefaultCredentials = True
client.Credentials = New System.Net.NetworkCredential("liuc@qq.com", "mima123")
'SMTP服务器和端口号
'因为本实例中用来发送邮件的是qq企业邮箱,所以接受服务器用的是smtp.exmail.qq.com
client.Host = "smtp.exmail.qq.com"
client.Port = 25
Tryclient.Send(msg)MessageBox.Show("发送成功")
Catch ex As ExceptionMessageBox.Show(ex.Message, "发送邮件异常")
End Try
以上代码实现了带图片及附件的邮件发送。
但是实际应用中发现,QQ邮箱为了保证安全,他的默认配置是读取纯文本格式的邮件。内容中的图片未被显示,需要在邮件中点击【显示图片】或者【信任发件人的图片】,邮件内容中的图片才会显示出来。
因为我发送邮件的场景是想发送一个带二维码的邮件,如果图片无法显示,则达不到我想要的效果。
因此我考虑,是否可以用<table>标签,拼出一个二维码来,这样就可以解决qq邮箱无法显示图片的问题了。
生成二维码我采用的是Google的ZXing
生成的二维码选用的是QR码。Qr码有40种版本,也就是大小从21*21到177*177。
我要生成二维码的二维码格式基本都是byx123456。经测试,发现生成的二维码的size是25*25.
所以我要先生成一个25*25的二维码。每一个像素都表示一个有效的信息点。
'生成二维码
Dim Writer As BarcodeWriter = New BarcodeWriter()
Writer.Format = BarcodeFormat.QR_CODE
Dim options As ZXing.QrCode.QrCodeEncodingOptions = New ZXing.QrCode.QrCodeEncodingOptions()
'禁用ECI编码段: use UTF-8 encoding and the ECI segment is omitted
options.DisableECI = True
'设置内容编码
options.CharacterSet = "UTF-8"
'设置二维码的宽度和高度
options.Width = 25
options.Height = 25
'设置二维码的边距,单位不是固定像素
options.Margin = 1
options.ErrorCorrection = ZXing.QrCode.Internal.ErrorCorrectionLevel.H
Writer.Options = options
Dim Map As Bitmap = Writer.Write("byx123456")
Map.Save("D:\byx123456.bmp")
生成的二维码如上图
想要将二维码转化为纯html格式的,我只需遍历这个图片,根据像素点的颜色,设置<td></td>标签的背景色即可。
遍历图片我用的是EmguCV。当然啦,其实根本没必要用Emgu。
'二维码转为纯html
Dim emguImg As Image(Of Gray, Byte) = New Image(Of Gray, Byte)("D:\byx123456.bmp")
Dim qrCodeHtmlStr As String = ""
qrCodeHtmlStr = qrCodeHtmlStr + "<tr>"
qrCodeHtmlStr = qrCodeHtmlStr + "<td><table style='border-collapse:collapse;'>"
For i = 0 To emguImg.Width - 1qrCodeHtmlStr = qrCodeHtmlStr + "<tr>"For j = 0 To emguImg.Height - 1If emguImg.Data(i, j, 0) = 0 ThenqrCodeHtmlStr = qrCodeHtmlStr + "<td width='13' height='13' border='0' padding='0' style='background-color:black;padding:0px;'></td>"ElseqrCodeHtmlStr = qrCodeHtmlStr + "<td width='13' height='13' border='0' padding='0' style='padding:0px;'></td>"End IfNextqrCodeHtmlStr = qrCodeHtmlStr + "</tr>"
Next
qrCodeHtmlStr = qrCodeHtmlStr + "</table></td></tr>"
body = body + qrCodeHtmlStr
再将生成的html插入到邮件中,就可以得到一个qq邮箱也可以查看的纯html的二维码啦
VB.NET邮件群发纯htlm二维码相关推荐
- 纯JavaScript二维码在线生成网页源码
介绍: 纯JavaScript实现二维码生成的网页源码,各位技术爱好者可以拿去研究, 支持设置二维码的各项具体内容,适合专业人士使用. 网盘下载地址: https://zijiewangpan.com ...
- 二维码生成插件qrious(纯JS)
二维码生成插件qrious(纯JS) 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能 ...
- vue 生成二维码工具
使用说明: 二维码生成工具演示地址:jvm123.com/qr-code 此工具纯前端生成二维码,可生成一般的文本.网址和邮件地址. 网址二维码在扫描之后,会启动手机浏览器或微信浏览器打开网址: 邮件 ...
- 微信二维码支付快速入门
目录 一.二维码生成插件qrious 二.HttpClient 三.微信扫码支付 1.申请步骤 2.开发文档 四.入门Demo 1.工程搭建 2.myStudy-pay-interface 3.myS ...
- App上线后,如何使用二维码进行推广
众所周知,智能手机在当今生活中越来越流行,APP也随之迅速发展,APP随之迅猛发展,APPstroe和android这两大手机商店的应用总数已经突破100万,同时各应用商店的应用数量也不断增加,应用数 ...
- 网址二维码:如何制作网页链接二维码?
1994年,一家日本的公司发明了二维码,最开始是用来追踪旗下公司零部件的维修情况.在二维码上有不同的区域,标识不同的信息,比如对齐模式.定时模式.安静区域.版本信息.数据单元等. 现如今二维码和我们的 ...
- qrious二维码生成插件
二维码 什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类 ...
- 2022-02-18 Android app 二维码扫描demo,用zxing库,实测ok,记录一下所参考有价值的文章,有生成二维码的demo,但没有亲测。
一.Android中二维码扫描的最常用库是zxing和zbar,这里用zxing. 二.实测效果图,扫描完成后会以Toast方式显示结果. 三.测试代码的架构 四.代码不细说,想看源码的可以downl ...
- Qrious生成图片二维码
qrious是一款基于HTML5 Canvas的纯JS二维码生成插件.通过qrious.js可以快速生成各种二维码,可以控制二维码的尺寸颜色,还可以将生成的二维码进行Base64编码. qrious. ...
最新文章
- 基于 CODING 轻松搞定持续集成
- 百度地图API二次开发小经验分享
- Python3搭建Django框架浅析
- Python中*args和**kwargs
- 在Spring MVC中使用注解的方式校验RequestParams
- 砰的一声,实验室又炸鸡了
- Ajax基本案例详解之$.ajax的实现
- 输光200亿,利润暴跌77%!史上最“作死”老字号,还想靠天价翻身?
- Apache ActiveMQ消息中间件的基本使用
- c++用向量给句子排序_用C ++对向量排序
- Angular CLI 常用命令
- 【论文笔记】(FGSM公式推导)Explaining and Harnessing Adversarial Examples
- AntennaHome Launch 5G Combo Internal PCB Antenna /5G 全频 PCB天线
- python生成复合饼图
- 论EBS的并发请求(报表中心)的必要性
- linux中Swap分区是做什么的?
- java 玻璃效果_JavaFX中的磨砂玻璃效果?
- 美国标准的网络安全体系架构
- php程序yii是什么意思,【PHP开辟框架】yii是什么意义
- Crossing Number of Graphs 读书笔记
热门文章
- 薄膜电容器在新能源领域应用和发展机遇
- 计算机运算和控制核心的简称,计算机的核心是什么
- 微信免资金代金券(V3版)java代码
- Android 7.0新特性——依然范特西
- MBA不修“内功”,智能音箱犯后遗症
- “资产证券化支持实体经济万里行”启幕 探索实体经济发展新态势
- [Nginx日记](1)Nginx启动与关闭
- 新手入门前端,需要学习的基础内容。
- Drafting and Revision: Laplacian Pyramid Network for Fast High-Quality Artistic Style Transfer--T Li
- 19位银行卡卡号检验源代码