一 获取QQ邮箱Pass

  • 1.登录QQ邮箱

  • 2.点击设置,点击账户,下拉找到POP3/SMTP,点击生成授权码

  • 3.这样就获取了授权码,要妥善保管。

二 安装gomail

go get gopkg.in/gomail.v2

三 初始化发送邮件

  • 在mail目录下的mail.go文件中,输入以下代码:
package mail

import (
"account/common/micro"
"account/config/logger"
"account/config/redis"
"fmt"
"gopkg.in/gomail.v2"
"math/rand"
"time"
) func InitSendMail(mailTo string, subject string, body string, code string) (string, error) {
// 设置邮箱主体
mailConn := map[string]string{
"user": micro.ConsulInfo.Email.User, //发送人邮箱(邮箱以自己的为准)
"pass": micro.ConsulInfo.Email.Pass, //发送人邮箱的密码,现在可能会需要邮箱 开启授权密码后在pass填写授权码
"host": micro.ConsulInfo.Email.Host, //邮箱服务器(此时用的是qq邮箱)
"rename": micro.ConsulInfo.Email.Rename, //邮箱别名
}
m := gomail.NewMessage(
//发送文本时设置编码,防止乱码。 如果txt文本设置了之后还是乱码,那可以将原txt文本在保存时
//就选择utf-8格式保存
gomail.SetEncoding(gomail.Base64),
)
m.SetHeader("From", m.FormatAddress(mailConn["user"], mailConn["rename"])) // 添加别名
m.SetHeader("To", mailTo) // 发送给用户(可以多个)
m.SetHeader("Subject", subject) // 设置邮件主题
m.SetBody("text/html", body) // 设置邮件正文
/*
创建SMTP客户端,连接到远程的邮件服务器,需要指定服务器地址、端口号、用户名、密码,如果端口号为465的话,
自动开启SSL,这个时候需要指定TLSConfig
*/
d := gomail.NewDialer(mailConn["host"], int(micro.ConsulInfo.Email.Port), mailConn["user"], mailConn["pass"]) // 设置邮件正文
//d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
err := d.DialAndSend(m)
if err != nil {
return "", err
}
return code, nil
}
  • 邮箱主体是用consul获取的,可以自己定义。

四 发送注册邮件

  • 在mail目录下的mail.go文件中,输入以下代码:
// SendRegisterMail 发送注册邮件
func SendRegisterMail(mailTo string) (string, error) {
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
code := fmt.Sprintf("%06v", rnd.Int31n(1000000))
subject := "欢迎注册"
body := "欢迎注册,您的邮箱验证码为:" + code + "请复制到注册窗口中完成注册,感谢您的支持。验证码在十分钟内有效"
return InitSendMail(mailTo, subject, body, code)
}

五 发送重置密码邮件

  • 在mail目录下的mail.go文件中,输入以下代码:
// SendResetPwdMail 发送重置密码邮件
func SendResetPwdMail(mailTo string) (string, error) {
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
code := fmt.Sprintf("%06v", rnd.Int31n(1000000))
subject := "重置密码"
body := "欢迎重置密码,您的邮箱验证码为:" + code + "请复制到重置密码窗口中完成重置密码,感谢您的支持。验证码在十分钟内有效"
return InitSendMail(mailTo, subject, body, code)
}

六 最后

  • 至此,go-micro微服务项目搭建工作就正式完成。

  • 接下来就开始正式的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击

(10)go-micro微服务发送邮件的更多相关文章

  1. 最热门的 10 个 Java 微服务框架

    1.Spring Boot Java 构建 Spring 应用程序已经有很长一段时间了,Spring Boot 是 Spring 的一个特定版本,它通过对配置细节的处理,使微服务构建更加简便.创建 S ...

  2. go micro 微服务框架温习

    go mod edit -require="github.com/chromedp/chromedp@v0.1.0" @后面加上你需要的版本号.就可以 已经修改go.mod 里的依 ...

  3. 【10】JMicro微服务-API网关

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到9小节 1. Api网关基本特性: Api网关作为对外网提供服务的基本入口,地位类似于NGINX, ...

  4. 10分钟了解微服务、容器和Kubernetes

    什么是微服务? 什么是微服务?你应该使用微服务吗?微服务与容器和 Kubernetes 有什么关系?如果这些问题在您的日常生活中不断出现,那么这篇文章适合您. 从根本上说,微服务只是一个运行在服务器或 ...

  5. 微服务开源生态报告 No.10

    「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展. 社区动态包括,但不限于:版本发布.人员动态.项目动态和规划.培训和活动. 非常欢迎国内其他微服 ...

  6. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...

  7. Spring Cloud与Docker微服务架构实战 PDF

    电子版百度云下载 链接: https://pan.baidu.com/s/115u011CJ8MZzJx_NqutyTQ 提取码: 关注公众号[GitHubCN]回复2019获取 本书的代码 共计70 ...

  8. 微服务架构实践 - 你只懂docker与spring boot就够了吗?

    微服务架构实践 - 你只懂docker与spring boot就够了吗? 作者 浮云发发 已关注 2017.02.27 02:50* 字数 2613 阅读 2583评论 6喜欢 35赞赏 2 微服务并 ...

  9. 【13】JMicro微服务-ID生成与Redis

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到12小节 1. 微服务中ID地位 如果说前面小节的功能点是微服务的大脑,那么全局唯一ID则是微服务 ...

  10. 【12】JMicro微服务-Zookeeper

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 往下看前,建议完成前面1到11小节 1. CuratorFramework支持 JMicro目前基于Zookeeper实现统 ...

随机推荐

  1. 知识图谱-生物信息学-医学论文(BMC Bioinformatics-2022)-挖掘阿尔茨海默病相关KG来确定潜在的相关语义三元组用于药物再利用

    论文标题: Mining On Alzheimer's Diseases Related Knowledge Graph to Identity Potential AD-related Semant ...

  2. Sentinel 介绍与下载使用

    sentinel 前方参考 计算QPS-Sentinel限流算法 https://www.cnblogs.com/yizhiamumu/p/16819497.html Sentinel 介绍与下载使用 ...

  3. 快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践

    本节内容,涉及到6.1-6.6(P155-182),以WebApi说明为主.主要NuGet包:无 一.创建WebApi的最佳实践,综合了RPC和Restful两种风格的特点 1 //定义Person类 ...

  4. scrapy出现SSL问题 如何解决? <twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', '', 'unsafe legacy renegotiation disabled')]>

    问题:<twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', '', 'unsafe legacy renego ...

  5. Jmeter添加性能监控插件监控被测系统资源

    使用jmeter来监控服务器资源(CPU.I/O.内存.网络等),需要安装jmeter性能监控插件以及在被测服务器中启动监控服务. 一.下载并安装插件 下载 Plugins Manager插件管理器, ...

  6. Perl读取Excel中的数据

    #!usr/bin/perl -W use strict; use Spreadsheet::ParseExcel;#PERL的Spreadsheet::ParseExcel模块支持Excel的读操作 ...

  7. 思维分析逻辑 3 DAY

    目录 指标分析 指标选择原则 指标体系建立 步骤 流量分析 渠道分析(从哪来) 常见渠道及渠道分类 渠道推广过程 渠道的指标 渠道分析方法 转化及价值分析(经过什么?产生什么价值?) 漏斗分析 功能模 ...

  8. SpringBoot+hutool工具-数据库数据导出Excel

    hutool文档地址:https://www.hutool.cn/docs/#/ 导入依赖 <dependency> <groupId>cn.hutool</groupI ...

  9. vivo浏览器的神奇操作

    关闭 root 权限也就罢了,你还搞这种操作 看到那个源文件了吗? 只有点击源文件下载的才是 官方提供的安装包, 而你首先看到的下载,点击后会下载vivo 应用商店的安装包. 那么这两种安装包有什么区 ...

  10. ArcObjects SDK开发 007 自定义App-Command-Tool框架

    1.为什么再设计一套App-Command-Tool框架 为什么我们要自己再设计一套App-Command框架,而不直接使用AO API中的AxControl-ICommand这套已经非常好的框架呢? ...