• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[GO]使用go-smtp发送邮件通知

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

直接使用go-smtp包  ,为了防止乱码 , 主题subject进行了base64编码

import (
    "encoding/base64"
    "github.com/emersion/go-sasl"
    "github.com/emersion/go-smtp"
    "strings"
)

func SendSmtp(server string, from string, password string, to []string, subject string, body string) error {
    auth := sasl.NewPlainClient("", from, password)
    subjectBase := base64.StdEncoding.EncodeToString([]byte(subject))
    msg := strings.NewReader(
        "From: " + from + "\r\n" +
            "To: " + strings.Join(to, ",") + "\r\n" +
            "Subject: =?UTF-8?B?" + subjectBase + "?=\r\n" +
            "\r\n" +
            body + "\r\n")
    err := smtp.SendMail(server, auth, from, to, msg)
    if err != nil {
        return err
    }
    return nil
}

使用的时候 , 注意端口号要加上 ,端口号是25 

如果发送失败 , 可以检测一下服务器是否允许访问外网25端口 , 一般腾讯云或者阿里云可能会封闭了访问25端口 , 并且不允许使用本机搭建的smtp服务进行发送 , 防止垃圾邮件泛滥

可以使用telnet smtp.sina.cn 25   这样的命令检测是否允许访问25端口

现在邮箱都是使用授权码进行验证的 , 注意是和登录密码有区别的 , 授权码一般在设置里面开启 , 只能重置生成不能修改

SendSmtp("smtp.sina.cn:25","[email protected]","xxxxx",[]string{"[email protected]"},"你好","邮件")

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go中处理各种请求方式以及处理接口请求参数发布时间:2022-07-10
下一篇:
GO——beego简单开发实例(二)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap