Golang邮件发送

1.实现方式

使用golang使用qq邮箱的第三方发送邮件方式,需获取qq邮箱密钥(不是密码)。
python有收发邮件版本:https://www.ljsea.top/2023/11/21/python%e9%82%ae%e4%bb%b6%e4%bb%a3%e7%90%86%e5%ae%a2%e6%88%b7%e7%ab%af/

2.代码

发送封装邮件:

package main

import (
    "fmt"
    "log"
    "net/smtp"
)

type MyEmail struct {
    SmtpPort     int
    ImapPort     int
    SmtpHost     string
    SmtpUserName string
    SmtpPassword string
}

func (e *MyEmail) Send(title, content string, toEmail []string) error {
    // 设置邮件头部
    header := make(map[string]string)
    header["From"] = e.SmtpUserName
    header["To"] = toEmail[0]

    header["Subject"] = title

    // 组装邮件消息
    message := ""
    for k, v := range header {
        message += fmt.Sprintf("%s: %s\r\n", k, v)
    }
    message += "\r\n" + content
    // 发送邮件
    err := smtp.SendMail(e.SmtpHost, smtp.PlainAuth("", e.SmtpUserName, e.SmtpPassword, "pop.qq.com"), e.SmtpUserName, toEmail, []byte(message))
    if err != nil {
        log.Fatalf("smtp error: %s", err)
    }
    return nil
}

测试代码:

var em MyEmail
em.SmtpPassword = "nihzazdkmuctdhid"
em.SmtpHost = "pop.qq.com:587"
em.SmtpUserName = "354425203@qq.com"
em.SmtpPort = 587
em.ImapPort = 993
title := "设备状态异常"
content := "设备状态异常\n设备: home server\t时间:" + time.Now().String()
err := em.Send(title, content, []string{"3236990479@qq.com", "lijun@ljsea.top"})
if err != nil {
    fmt.Println(err)
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇