golang实现6位数验证码发送

golang实现6位数验证码发送,第1张

有时我们需要给用户发送验证码,但是手机短信验证会有成本,所以今天我在这里分享一下邮箱发送验证码的方法

依赖包
go get gopkg.in/gomail.v2
详细代码

下面的代码附有详细注释

package main

import (
    "fmt"
    "log"
    "math/rand"
    "time"

    "gopkg.in/gomail.v2"
)

// MailboxConf 邮箱配置
type MailboxConf struct {
    // 邮件标题
    Title string
    // 邮件内容
    Body string
    // 收件人列表
    RecipientList []string
    // 发件人账号
    Sender string
    // 发件人密码,QQ邮箱这里配置授权码
    SPassword string
    // SMTP 服务器地址, QQ邮箱是smtp.qq.com
    SMTPAddr string
    // SMTP端口 QQ邮箱是25
    SMTPPort int
}

func main() {
    var mailConf MailboxConf
    mailConf.Title = "验证"
  //这里就是我们发送的邮箱内容,但是也可以通过下面的html代码作为邮件内容
    // mailConf.Body = "坚持才是胜利,奥里给"
  
  //这里支持群发,只需填写多个人的邮箱即可,我这里发送人使用的是QQ邮箱,所以接收人也必须都要是
  //QQ邮箱
    mailConf.RecipientList = []string{"邮箱账号1","邮箱账号2"}
    mailConf.Sender = `邮箱账号`
  
  //这里QQ邮箱要填写授权码,网易邮箱则直接填写自己的邮箱密码,授权码获得方法在下面
    mailConf.SPassword = "这里填写自己QQ邮箱授权码"
  
  //下面是官方邮箱提供的SMTP服务地址和端口
    // QQ邮箱:SMTP服务器地址:smtp.qq.com(端口:587)
    // 雅虎邮箱: SMTP服务器地址:smtp.yahoo.com(端口:587)
    // 163邮箱:SMTP服务器地址:smtp.163.com(端口:25)
    // 126邮箱: SMTP服务器地址:smtp.126.com(端口:25)
    // 新浪邮箱: SMTP服务器地址:smtp.sina.com(端口:25)

    mailConf.SMTPAddr = `smtp.qq.com`
    mailConf.SMTPPort = 25

    //产生六位数验证码
    rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
    vcode := fmt.Sprintf("%06v", rnd.Int31n(1000000))

    //发送的内容
    html := fmt.Sprintf(`
        
            尊敬的用户,您好!
        
        
            

你本次的验证码为%s,为了保证账号安全,验证码有效期为5分钟。请确认为本人 *** 作,切勿向他人泄露,感谢您的理解与使用。

此邮箱为系统邮箱,请勿回复。

`, vcode) m := gomail.NewMessage() // 第三个参数是我们发送者的名称,但是如果对方有发送者的好友,优先显示对方好友备注名 m.SetHeader(`From`, mailConf.Sender, "小铃铛官方") m.SetHeader(`To`, mailConf.RecipientList...) m.SetHeader(`Subject`, mailConf.Title) m.SetBody(`text/html`, html) // m.Attach("./Dockerfile") //添加附件 err := gomail.NewDialer(mailConf.SMTPAddr, mailConf.SMTPPort, mailConf.Sender, mailConf.SPassword).DialAndSend(m) if err != nil { log.Fatalf("Send Email Fail, %s", err.Error()) return } log.Printf("Send Email Success") }
QQ邮箱获取授权码的方法


打开我们的邮箱,左上角点击设置然后点击账户


在下面找到SMTP并开启,在这里我已经开启过了,开启后他会给你一个授权码,如果授权码忘了,可以关闭再打开他会给你一个 新的授权码

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/994108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存