Go 每日一库之 email

本文介绍了Go语言中使用email库发送邮件的详细步骤,包括快速入门、抄送、HTML格式邮件、添加附件和使用连接池。通过实例展示了如何配置SMTP服务器并发送带有抄送和HTML内容的邮件,以及如何添加附件。此外,还提到了连接池的使用以优化性能。
摘要由CSDN通过智能技术生成

简介

程序中时常有发送邮件的需求。有异常情况了需要通知管理员和负责人,用户下单后可能需要通知订单信息,电商平台、中国移动和联通都有每月账单,这些都可以通过邮件来推送。还有我们平时收到的垃圾邮件大都也是通过这种方式发送的😭。那么如何在 Go 语言发送邮件?本文我们介绍一下email库的使用。

快速使用

这个库的使用快不了,为什么呢?

先安装库,这个自不必说:

$ go get github.com/jordan-wright/email

我们需要额外一些工作。我们知道邮箱使用SMTP/POP3/IMAP等协议从邮件服务器上拉取邮件。邮件并不是直接发送到邮箱的,而是邮箱请求拉取的。
所以,我们需要配置SMTP/POP3/IMAP服务器。从头搭建固然可行,而且也有现成的开源库,但是比较麻烦。现在一般的邮箱服务商都开放了SMTP/POP3/IMAP服务器。
我这里拿 126 邮箱来举例,使用SMTP服务器。当然,用 QQ 邮箱也可以。

  • 首先,登录邮箱;
  • 点开顶部的设置,选择POP3/SMTP/IMAP
  • 点击开启IMAP/SMTP服务,按照步骤开启即可,有个密码设置,记住这个密码,后面有用。

然后就可以编码了:

package main

import (
  "log"
  "net/smtp"

  "github.com/jordan-wright/email"
)

func main() {
  e := email.NewEmail()
  e.From = "dj <xxx@126.com>"
  e.To = []string{"935653229@qq.com"}
  e.Subject = "Awesome web"
  e.Text = []byte("Text Body is, of course, supported!")
  err := e.Send("smtp.126.com:25", smtp.PlainAuth("", "xxx@126.com", "yyy", "smtp.126.com"))
  if err != nil {
    log.Fatal(err)
  }
}

这里为了我的信息安全,我把真实信息都隐藏了。代码中xxx替换成你的邮箱账号,yyy替换成上面设置的密码。

代码步骤比较简单清晰:

  • 先调用NewEmail创建一封邮件;
  • 设置From发送方,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值