首页 > 其他分享 >golang:第三方库:用jordan-wright/email发送邮件

golang:第三方库:用jordan-wright/email发送邮件

时间:2024-12-14 13:09:29浏览次数:7  
标签:golang wright jordan com email 邮件 subject

一,安装第三方库:

$ go get -u github.com/jordan-wright/email
go: downloading github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
go: added github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible

二,代码:

1,发送邮件函数

package service

import (
	"crypto/tls"
	"fmt"
	"github.com/jordan-wright/email"
	"net/smtp"
)

//发送邮件,to:收件人,
//subject:标题
//content:邮件内容
func SendOneEmail(to,subject,content string) error {
	//定义发件邮箱密码等 信息
	frombox:="chinal@163.com"       //发件邮箱
	fromUser:="管理员 <chinal@163.com>"    //显示的用户名
	smtpNoPort:="smtp.163.com"      //host
	smtpPort:= "smtp.163.com:465"   //host带port
	smtpAuthPass :="Bxxxxxxxxxx4"   //auth pass

	//执行邮件发送
	e := email.NewEmail()
	e.From = fromUser     //要显示用户名
	e.To = []string{to}   //收件人
	// 主要就是在这里添加了抄送人cc以及秘密抄送人bcc
	//e.Cc = []string{"1315381111@qq.com"}
	//e.Bcc = []string{"1315381111@qq.com"}
	e.Subject = subject
    //text是文本型内容,HTML是网页型内容
	//e.Text = []byte("测试抄送和密码抄送邮件,收到可以忽略")
	e.HTML = []byte(content)
    //登录验证
    auth:=smtp.PlainAuth("", frombox, smtpAuthPass, smtpNoPort)
    //send方法表示不使用tls,SendWithTLS则使用tls
	//err := e.Send(smtpPort, auth)
	err := e.SendWithTLS(smtpPort, auth, &tls.Config{ServerName: smtpNoPort})
	if err != nil {
		fmt.Println(err)
		return err
	}
    return nil
}

2,调用:

    //准备需要的数据
    email:="laoliu@niubi.com"    //收件人
    subject:="重置密码信息"        //标题
    //内容
	html:="密码重置<br>您好"+username+"!<br/>你已经请求了重置密码,可以点击下面的链接来重置密码。<br><br><br>"
    //发送邮件
	err2:=service.SendOneEmail(email,subject,html)

三,效果:

标签:golang,wright,jordan,com,email,邮件,subject
From: https://www.cnblogs.com/architectforest/p/18602840

相关文章

  • Golang学习笔记_05——延迟调用
    Golang学习笔记_02——函数Golang学习笔记_03——匿名函数和闭包Golang学习笔记_04——递归函数文章目录延迟调用1.延迟调用1.1使用场景1.2示例2.panic2.1使用场景2.2示例3.recover3.1使用场景3.2示例源码延迟调用在Go语言中,延迟调用(defer)是一个......
  • PlayWright.Net定位无ID和Name的iframe框架
    PlayWright.Net获取无ID的frame框架,在iframe中按照id定位某个文本框多页签采用的frame方式,并且嵌套的iframe没有name和id。支持无限嵌套的ifame  privateasyncTaskDumpFrameTree(IFrameframe,stringindent){foreach(varchildinframe.Child......
  • slidev 导出前 安装playwright-chromium失败
    导出幻灯片|Slidev直接参考上述npmi-Dplaywright-chromium报错\[0/1]Installingplaywright-core@1.49.1[npminstall:runscript:error]playwright-chromium@latestruninstallnodeinstall.jserror:Error:Commandfailedwithexitcode1:nodeinstall.js更......
  • Python playwright 笔记
    1.官网https://playwright.nodejs.cn/docs/api/class-playwright2.PlaywrightforPython:https://playwright.bootcss.com/python/docs/intro3.入门笔记:https://www.byhy.net/4.playwright使用教程python版本-页面监听器、状态检测、执行JS、网络Mock等使用API  https://ww......
  • Golang学习笔记_02——函数
    Golang测试功能应用Golang学习笔记_01——包函数文章目录函数1.定义2.返回值3.命名返回值4.可变参数源码Go语言中的函数是一种基本的编程结构,用于封装一段代码,以便在需要时多次调用。函数可以接收参数并返回结果,是实现代码复用和模块化编程的重要手段。1......
  • 一行代码都不改,Golang 应用链路指标日志全知道!
    作者:刘子明(牧思)背景在此前,对Golang应用程序的监控通常需要对代码进行一定的改造,比如在代码中引入OpenTelemetry等SDK[1]。这样的改造通常会导致运维团队与研发团队之间的分歧。运维团队表示:“研发团队如果不接入相关的监控,作为运维团队我们很难摸清楚应用的运行状态并做......
  • 无法连接外网的机器部署VSCode&&Golang开发环境
    目标环境解释:开发使用的机器无法连接外网,导致直接使用go安装modules失败个人机器可以在内网中连接开发机器,并连接外网如果可以使用内网的go源,那就不用往下看了在一个无法连接外网的Linux工作机器上部署VSCode-golang开发环境实现步骤安装Golang在官网下载g......
  • Playwright的端到端测试(End-to-End Testing,简称 E2E 测试)是什么意思?
    Playwright的端到端测试(End-to-EndTesting,简称E2E测试)是一种软件测试方法,旨在模拟真实用户在应用程序中的交互行为,从头到尾验证整个应用的工作流程。这种测试确保了应用的所有组件(前端、后端、数据库等)协同工作,并且用户体验符合预期。端到端测试的特点全面覆盖:端到端测......
  • python+playwright实现虎牙弹幕自动发射器
    摘要:采用python+playwright实现虎牙弹幕自动发射器,支持自定义虎牙房间地址,支持自定义无数条弹幕。郑重声明:本代码仅作为学习使用,切勿使用其于违法目的等一切事宜,否则与作者无任何关系。使用步骤创建虚拟环境py-3-mvenvhuya_auto_env激活并进入虚拟环境huya_a......
  • 即时通讯在线客服系统源码-使用Golang Gin 和 Redis实现分布式webocket
    使用Go实现一个基于Gin框架和Redis的分布式WebSocket系统需要以下几个步骤:实现架构Gin处理HTTP/WebSocket请求Gin用于启动HTTP服务并处理WebSocket请求。RedisPub/SubRedis用于跨节点消息分发。WebSocket连接管理在服务内维护WebSocket连接池......