使用go实现邮箱验证码API

前言

本文将带你了解一个项目如何实现一个邮箱验证接口,即一个可用的发送邮箱验证码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邮箱可用端口号为465587

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值