前言
本文将带你了解一个项目如何实现一个邮箱验证接口,即一个可用的发送邮箱验证码API和验证验证码是否正确功能。
本文灵感来源于我的个人项目中的一个关于邮箱验证的小模块,如果你想学习Go以及上线一个简单的网盘项目,欢迎学习或者参与进我的开源项目Go-Cloud-Disk。如果能给我的项目点一个star更好不过,你的鼓励与点赞会使得我的项目和博客变得更好!
环境配置
实现一个邮箱验证接口我们需要使用Redis及一个可以发送邮件的邮箱本文将以163邮箱为例。
使用到的Go包
email:go常用的发送邮件的api。官方教程
Gin:本文将使用Gin进行路由注册。官方教程
Go-Redis: golang流行的Redis操作工具之一。官方教程
一键下载安装
go get github.com/jordan-wright/email
go get -u github.com/gin-gonic/gin
go get github.com/redis/go-redis/v9
如何发送邮件?
获取对应SMTP密钥
发送邮件需要使用到对应的SMTP服务器和邮箱密钥,下面我会以163邮箱为例演示如何获取SMTP密钥。


开启后会获得对应密钥,保存即可。
使用go发送邮件
发送邮件仅需使用go-email进行对应的封装即可,此处smtp服务器地址一般都可以猜出,如qq邮箱的smtp服务器为smtp.qq.com,或者直接百度搜索即可。但是对应的端口地址在选择不同的邮箱时需要注意更换,如163邮箱smtp服务器可用端口为25,qq邮箱可用端口号为465或587。
package main
import (
"fmt"
"net/smtp"
"github.com/jordan-wright/email"
)
func main() {
targetMailBox := "" // 目标邮箱
smtpServer := "smtp.163.com" // smtp服务器
emailAddr := "" // 要发件的邮箱地址
smtpKey := "" // 获取的smtp密钥
em := email.NewEmail()
em.From = fmt.Sprintf("Go-Cloud-Disk <%s>", emailAddr) // 发件人
em.To = []string{
targetMailBox} // 目标邮箱
// email title
em.Subject = "Email Confirm Test" // 标题
// build email content
em.Text = []byte("test") // 内容
// 调用接口发送邮件
// 此处端口号不一定为25使用对应邮箱时需要具体更换
em.Send(smtpServer+":25", smtp.PlainAuth("", emailAddr, smtpKey, smtpServer))
}
使用go run main


3258

被折叠的 条评论
为什么被折叠?



