golang如何发送邮件

邮件的收发不介绍了,直接上代码了

package main

import (
    "gopkg.in/gomail.v2"
)

func main() {
    m := gomail.NewMessage()

    m.SetHeader("From", "[email protected]")
    m.SetHeader("To", "[email protected]")
    //m.SetAddressHeader("Cc", "[email protected]", "Dan")
    m.SetHeader("Subject", "Hello!")
    m.SetBody("text/html", "Hello Bob and Cora!")
    //m.Attach("/home/Alex/lolcat.jpg")

    d := gomail.NewDialer("smtp.qq.com", 587, "[email protected]", "okbnsnqptzjzfigd")

    // Send the email to Bob, Cora and Dan.
    if err := d.DialAndSend(m); err != nil {
        panic(err)
    }
}

唯一踩到的坑就是password了
对代码种的xxxx和yyyyy账户替换成发送方和接收方后,箭头指向并不是你的登陆密码,而是授权码
这里写图片描述

使用自定义客户端发放邮件需要以下两个要素:
1. 发送方的右键必须开启stmt和pop3通道,以qq邮箱为例,登陆qq邮箱->设置-账户->开启pop3和stmt服务
2. 开启后会获得该账户的授权码,无需记着,可以通过临时生成.(但好像是长期有效的,建议还是记录一下~)
这里写图片描述
golang如何发送邮件_第1张图片
golang如何发送邮件_第2张图片

有疑惑评论说,不同的右键服务器的smtp和pop3的地址和端口可能会不同,具体的可以百度查

你可能感兴趣的:(go)