发布时间:2024-12-23 01:34:15
示例代码:
host := "smtp.qq.com"
port := 465
user := "your_email@qq.com"
password := "your_password"
auth := smtp.PlainAuth("", user, password, host)
首先,我们需要提供SMTP服务器的地址和端口号,这些信息可以找到邮件服务提供商的帮助文档中。接下来,我们需要提供发件人的邮箱地址和密码,这些是用于验证身份的信息。最后,使用PlainAuth函数创建一个Auth结构体,它将被用于SMTP客户端进行身份验证。
示例代码:
from := mail.Address{"", "your_email@qq.com"}
to := mail.Address{"", "recipient_email@example.com"}
subject := "Hello Golang"
body := "This is an example email sent using Golang."
header := make(map[string]string)
header["From"] = from.String()
header["To"] = to.String()
header["Subject"] = subject
message := ""
for k, v := range header {
message += fmt.Sprintf("%s: %s\r\n", k, v)
}
message += "\r\n" + body
msg := []byte(message)
在示例代码中,我们首先创建了发件人和收件人的邮件地址对象,然后设置了邮件的主题和正文。接着,我们创建了一个头部信息的map,并将发件人、收件人和主题添加到其中。最后,将头部信息和正文拼接起来,得到完整的消息。
示例代码:
body := "This is the email body."
file, err := os.Open("attachment.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close()
part := make([]byte, 512)
_, err = file.Read(part)
if err != nil {
log.Fatal(err)
}
attachment := gomail.NewAttachment("attachment.txt", part)
message := gomail.NewMessage()
message.SetHeaders(map[string][]string{
"From": {"sender@example.com"},
"To": {"recipient@example.com"},
"Subject": {"Hello Golang"},
})
message.SetBody("text/plain", body)
message.Attach(attachment)
在示例代码中,我们首先创建了一个File对象,用于读取附件文件。然后,创建了一个Attachment对象,将文件名和内容进行了设置。接着,创建了一个Message对象,并设置发件人、收件人、主题和正文。最后,使用Attach方法将附件添加到邮件中。
示例代码:
smtpServer := fmt.Sprintf("%s:%d", host, port)
err := smtp.SendMail(smtpServer, auth, user, []string{to.Address}, msg)
if err != nil {
log.Fatal(err)
}
在示例代码中,我们使用SendMail函数将邮件发送出去。其中,第一个参数是SMTP服务器的地址和端口号,第二个参数是Auth结构体,用于身份验证。第三个参数是发件人的邮箱地址,第四个参数是一个字符串切片,包含收件人的邮箱地址。
到这里,我们已经完成了通过Golang发送邮件的整个过程。希望本文可以帮助到你在Golang开发中处理邮件发送的相关任务。