如何使用 gomail 设置发送为电子邮件地址
How to set send-as email address using gomail
我正在尝试使用 gomail
发送电子邮件,并且需要设置发送电子邮件地址。我找到 link 来设置回复地址,这很接近,但不完全是我要找的。
Send-as 是我知道 GMail 支持的功能,其他人可能也支持。我已经在 GMail 中配置了 send-as 并且工作正常,只是想看看我是否可以通过 gomail
设置它
我尝试了以下方法:
通读 gomail
的文档
m.SetHeader("SendAs", emailAddress)
m.SetHeader("Send-As", emailAddress)
m.SetHeader("sendAs", emailAddress)
m.SetAddressHeader("SendAs", emailAddress, "")
m.SetAddressHeader("Send-As", emailAddress, "")
m.SetAddressHeader("sendAs", emailAddress, "")
func TestEmail(to, from, cc, bcc, subject, message, password, fileName string) (string, error) {
// We need to parse the TO, CC, and BCC lists, which may contain more than one email address each.
splitToField := strings.Split(to, ",")
splitCCField := strings.Split(cc, ",")
splitBCCField := strings.Split(bcc, ",")
m := gomail.NewMessage()
m.SetHeader("From", from)
m.SetHeader("To", splitToField...)
// If there is a CC address(s), then add them.
if len(cc) > 0 {
fmt.Println("CC LEN > 0", len(splitCCField))
m.SetHeader("Cc", splitCCField...)
}
// If there is a BCC address(s), then add them.
if len(bcc) > 0 {
fmt.Println("BCC LEN > 0", len(splitBCCField))
m.SetHeader("Bcc", splitBCCField...)
}
m.SetHeader("Subject", subject)
m.SetBody("text/html", message)
m.Attach("emailedQuotes/"+fileName)
// So far, we configured this to ONLY work with GMail accounts.
// Possibly in the future we can add an input on the front end and have them enter
// their host/port manually. Or get fancy and parse the email address and have the most common
// types in a struct.
d := gomail.NewDialer("smtp.gmail.com", 587, from, password)
err := d.DialAndSend(m)
if err != nil {
fmt.Println("ERROR SENDING EMAIL!", err)
return "", err
} else {
fmt.Println("Email successfully sent to: ", to)
return "Email successfully sent to:" + to, nil
}
}
我希望您能够输入 username/password 作为 from
地址,并且能够发送 from
地址显示为 send-as
地址。
如果我执行此操作(为 from
地址使用正确的 username/password),它将正确触发电子邮件,但 send-as
不会接管 from
地址。所以,不起作用,但没有错误。
您链接的 google api 的文档没有谈论设置 mime header - 据我所知没有这样的事情。因此,在电子邮件中设置 "SendAs" mime header 不会有任何效果。
您正在使用 gomail - github repo 表示 'Gomail can only send emails using an SMTP server' - 这意味着它没有使用您链接的 api(与 mime 无关 headers)。
可能对您有用的是将发件人地址设置为您已经在 google 帐户上设置为发件人的地址,然后使用 gomail 通过您的 google 帐户发送.
我正在尝试使用 gomail
发送电子邮件,并且需要设置发送电子邮件地址。我找到 link 来设置回复地址,这很接近,但不完全是我要找的。
Send-as 是我知道 GMail 支持的功能,其他人可能也支持。我已经在 GMail 中配置了 send-as 并且工作正常,只是想看看我是否可以通过 gomail
我尝试了以下方法:
通读 gomail
m.SetHeader("SendAs", emailAddress)
m.SetHeader("Send-As", emailAddress)
m.SetHeader("sendAs", emailAddress)
m.SetAddressHeader("SendAs", emailAddress, "")
m.SetAddressHeader("Send-As", emailAddress, "")
m.SetAddressHeader("sendAs", emailAddress, "")
func TestEmail(to, from, cc, bcc, subject, message, password, fileName string) (string, error) {
// We need to parse the TO, CC, and BCC lists, which may contain more than one email address each.
splitToField := strings.Split(to, ",")
splitCCField := strings.Split(cc, ",")
splitBCCField := strings.Split(bcc, ",")
m := gomail.NewMessage()
m.SetHeader("From", from)
m.SetHeader("To", splitToField...)
// If there is a CC address(s), then add them.
if len(cc) > 0 {
fmt.Println("CC LEN > 0", len(splitCCField))
m.SetHeader("Cc", splitCCField...)
}
// If there is a BCC address(s), then add them.
if len(bcc) > 0 {
fmt.Println("BCC LEN > 0", len(splitBCCField))
m.SetHeader("Bcc", splitBCCField...)
}
m.SetHeader("Subject", subject)
m.SetBody("text/html", message)
m.Attach("emailedQuotes/"+fileName)
// So far, we configured this to ONLY work with GMail accounts.
// Possibly in the future we can add an input on the front end and have them enter
// their host/port manually. Or get fancy and parse the email address and have the most common
// types in a struct.
d := gomail.NewDialer("smtp.gmail.com", 587, from, password)
err := d.DialAndSend(m)
if err != nil {
fmt.Println("ERROR SENDING EMAIL!", err)
return "", err
} else {
fmt.Println("Email successfully sent to: ", to)
return "Email successfully sent to:" + to, nil
}
}
我希望您能够输入 username/password 作为 from
地址,并且能够发送 from
地址显示为 send-as
地址。
如果我执行此操作(为 from
地址使用正确的 username/password),它将正确触发电子邮件,但 send-as
不会接管 from
地址。所以,不起作用,但没有错误。
您链接的 google api 的文档没有谈论设置 mime header - 据我所知没有这样的事情。因此,在电子邮件中设置 "SendAs" mime header 不会有任何效果。
您正在使用 gomail - github repo 表示 'Gomail can only send emails using an SMTP server' - 这意味着它没有使用您链接的 api(与 mime 无关 headers)。
可能对您有用的是将发件人地址设置为您已经在 google 帐户上设置为发件人的地址,然后使用 gomail 通过您的 google 帐户发送.