Disposable Email Verifier 进行一次性邮件验证
在今天的互联网环境中,垃圾邮件和虚假注册是常见的问题。为了应对这些挑战,我们可以使用一次性邮件验证工具来确保电子邮件地址的有效性。 Disposable Email Verifier 是一个用于验证电子邮件是否为一次性邮件服务提供商(如 TempMail、Mailinator 等)地址的开源工具。本文将介绍如何使用这个工具进行一次性邮件验证。 介绍Disposable Email Verifier 是一个用 Golang 编写的项目,旨在识别和过滤一次性邮件地址。一次性邮件地址通常用于临时注册和避免垃圾邮件,因此在很多应用中需要进行过滤,以保证用户注册的邮箱真实有效。 特性 支持多种一次性邮件服务提供商的识别。 轻量级且易于集成。 高效的邮箱验证机制。 功能 一次性电子邮件检查:验证电子邮件地址是否来自一次性电子邮件提供商。 速率限制:支持每日请求限制以防止滥用。 自动域更新:定期更新一次性电子邮件域列表。 要求 Go 1.18 或更高版本 用于部署的 Vercel 帐户 数据源https://github.com/disposable/disposable-email-doma ...
golang使用protobuf
下载地址https://github.com/protocolbuffers/protobuf/releases 找到对应系统版本下载,如window(mac 可以用brew包管理)下载之后解压,在环境变量中path增加protobuf的解压之后的路径D:\Program Files\protoc-24.2-win64\bin 查看是否安装成功 12终端输入命令:protoc --version终端返回:libprotoc 3.11.4 利用protoc生成文件 下载go插件(这里是新版操作) 123go get google.golang.org/grpcgo install google.golang.org/protobuf/cmd/protoc-gen-go@latestgo install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest 创建 .proto 后缀的文件名 12345678910111213141516171819202122232425// 版本号,不声明默认proto2版本syntax = & ...
js文件上传中file、bolb、base64图片之间的相互转化
介绍 file(文件流)、bolb(本地流)、base64(二进制流) file File 接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。 通常情况下, File 对象是来自用户在一个 元素上选择文件后返回的 FileList 对象,也可以是来自由拖放操作生成的 DataTransfer 对象,或者来自 HTMLCanvasElement 上的 mozGetAsFile() API。在Gecko中,特权代码可以创建代表任何本地文件的File对象,而无需用户交互 File 对象是特殊类型的 Blob,且可以用在任意的 Blob 类型的 context 中。比如说, FileReader, URL.createObjectURL(), createImageBitmap(), 及 XMLHttpRequest.send() 都能处理 Blob 和 File。 blob Blob 对象表示一个不可变、原始数据的类文件对象。指向的是本地的临时地址,Blob 表示的不一定是JavaScript原生格式的数据。File 接口基于Blob,继承了 blob 的功能并 ...
Golang Gin框架的路由使用
在 Gin 框架中,路由是指 Web 应用程序中的 URL。Gin 框架中的路由定义了客户端请求的 URL 和处理该请求的函数之间的映射关系。Gin 框架支持多种类型的路由,包括 GET、POST、PUT、DELETE 等,可以根据需要进行选择。 路由基础下面是一个使用 Gin 框架的路由的示例:首先,导入 Gin 包,然后,创建一个 Gin 实例 12import "github.com/gin-gonic/gin"r := gin.Default() 接着,定义路由: 123r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello, Gin!")}) 这里使用 r.GET() 定义了一个 GET 请求路由,当客户端请求根路径时,返回一个字符串 “Hello, Gin!”。 除了 GET 请求之外,Gin 框架还支持其他类型的请求,例如,定义一个 POST 请求路由: 12345r.POST("/user", ...
一次性邮箱列表
市面上的邮箱校验价格有些许贵,而且暂时所需的功能暂时不用那么多,为了避免部分使用一次性邮箱占用内存空间,在github找到这个(有不定期更新) https://disposable.github.io/disposable-email-domains/domains.json
Golang 中的 base64.DecodeString()函数示例
Go 语言为 base64 编码/解码提供内置支持,并具有可用于使用 base64 包对给定数据执行操作的函数。该包提供了DecodeString()函数,用于将 base64字符串解码为其明文形式。它支持使用标准和 URL 兼容的 base64 标准进行解码。 句法: 1func (enc *Encoding) DecodeString(s string) ([]byte, error) 与解码器一起使用的编码类型有 4 种变化: StdEncoding:它是 RFC 4648 标准定义的标准编码。 RawStdEncoding:它是 RFC 4648 标准定义的标准编码,只是省略了填充字符。 URLEncoding:它是 RFC 4648 标准定义的 URL 编码。它通常用于编码 URL 和文件名。 RawURLEncoding:它是 RFC 4648 标准定义的 URL 编码。它通常用于对 URL 和文件名进行编码,只是省略了填充字符。 返回值:它返回给定 base64字符串表示的字节。
坑:golang xorm Update为0不更新处理
更新数据使用Update方法,Update方法的第一个参数为需要更新的内容,可以为一个结构体指针或者一个Map[string]interface{}类型。当传入的为结构体指针时,只有非空和0的field才会被作为更新的字段。当传入的为Map类型时,key为数据库Column的名字,value为要更新的内容。 123user := new(User)user.Name = "myname"affected, err := engine.Id(id).Update(user) 这里需要注意,Update会自动从user结构体中提取非0和非nil得值作为需要更新的内容,因此,如果需要更新一个值为0,则此种方法将无法实现,因此有两种选择: 通过添加Cols函数指定需要更新结构体中的哪些值,未指定的将不更新,指定了的即使为0也会更新。 1affected, err := engine.Id(id).Cols("age").Update(&user) 通过传入map[string]interface{}来进行更新,但这时需要额外指定更新到哪个表 ...
异步加载js的方式
异步加载js的三种方式1.defer 异步加载 特点 :只有IE适用,需等到dom文档全部解析完(dom树生成完,才会被执行) 1<script type="text/javascript" src="xxx.js" defer></script> 2.async异步加载 特点:加载完就执行,async 只能加载外部脚本,不能把js代码写在script标签里 1<script type="text/javascript" src="xxx.js" async></script> 3.动态创建script标签 特点:避免HTML文件过大,提高页面加载速度 123456789101112131415161718192021222324/** * 异步加载js,通过加载完成js之后,再执行callback方法 * @param url * @param callback */export function loadScript(url,callback) ...
golang使用结构标签启用具有默认值的结构
https://github.com/mcuadros/go-defaults 效果原golang结构体订单的字符串或布尔值,序列化得到的默认值会是空字符串或false;golang json序列化结构体的时候,json存在的字段会保留,如果json不存在的字段,将会拿结构体tags标签的default为默认值 坑:如果有用json.Unmarshal,defaults.SetDefaults必须在其前面执行安装go get github.com/mcuadros/go-defaults 例子12345678910111213141516171819202122232425262728type SetDefault struct { Name string `json:"name"` Gender int `json:"gender" default:"1"` InSchool bool `json:"in_school" default:"true"`& ...
谷歌授权使用
原生html在head中新增 1<script src="https://accounts.google.com/gsi/client" async></script> 在body中新增 [回调uri的方式推荐] 详细介绍:https://developers.google.cn/identity/gsi/web/reference/html-reference?hl=zh-cn快捷登录模式 1234567<div id="g_id_onload" data-client_id="客户端id" data-context="signup" data-login_uri="回调uri" data-cancel_on_tap_outside="false" data-itp_support="true"></div> 另一种方式,弹窗方式:详细介绍:https:// ...