我使用sendgrid在golang中发送邮件。尽管状态码返回202,但电子邮件未发送。有人可以帮我吗?
package main
import (
"fmt"
"log"
sendgrid "github.com/sendgrid/sendgrid-go"
"github.com/sendgrid/sendgrid-go/helpers/mail"
)
func main() {
from := mail.NewEmail("Example User", "test@example.com")
subject := "Sending with SendGrid is Fun"
to := mail.NewEmail("Example User", "trungduc08trungduc08@gmail.com")
plainTextContent := "and easy to do anywhere, even with Go"
htmlContent := "<strong>and easy to do anywhere, even with Go</strong>"
message := mail.NewSingleEmail(from, subject, to, plainTextContent, htmlContent)
client := sendgrid.NewSendClient("my api-key")
response, err := client.Send(message)
if err != nil {
log.Println("err:", err)
} else {
fmt.Println("statusCode: ", response.StatusCode)
fmt.Println("body: ", response.Body)
fmt.Println("headers: ", response.Headers)
}
}
答案 0 :(得分:0)
我假设您已经建立了一个SendGrid帐户,如果没有,我会从那里开始,因为它逐步说明了如何生成API密钥并测试电子邮件是否已由SendGrid发送。
您的问题在这行上(上面的代码看起来直接从未修改的SendGrid的示例中提取)
from := mail.NewEmail("Example User", "test@example.com")
电子邮件地址必须是您控制的有效电子邮件地址。
有关如何开始的更多详细信息,请参见https://app.sendgrid.com/guide/integrate/langs/go。
如果上述方法不起作用,则可能还需要通过SendGrid进行验证/验证(在“市场营销”>“市场营销活动”>“发件人”>“创建新发件人”下指定用于发送电子邮件的电子邮件地址时,您会收到一封确认电子邮件。您的SendGrid帐户),然后才能使用该电子邮件地址发送电子邮件。