go - 使用 Gmail API 时,Gmail 界面中的发件人电子邮件很奇怪

标签 go gmail-api

我使用google.golang.org/api/gmail/v1的方法用于发送带有“我”的消息userId :

gm, err := gmail.NewUsersMessagesService(service).Send("me", gm).Do()
    if err != nil {
        return
    }

比方说,我的电子邮件地址是 myemail@gmail.com .我希望收件人会收到我在 From 中的电子邮件(或姓名 + 姓氏)的消息 field 。但是,在 gmail 界面中显示为 myemail .
我手动设置电子邮件时的情况相同。

您能否帮我找出此 API 方法的正确签名,以使发件人姓名预览为姓名+姓氏或完整的电子邮件?

最佳答案

以这种方式构建您的信息以实现您的愿望:

    user := "me"
    full_name := "John Doe"
    email := "myexample@gmail.com"

    // New message for our gmail service to send
    var message gmail.Message

    // Compose the message
    messageStr := []byte(
        "From: " + full_name + "<" + email + ">" + "\r\n" +
            "To: sendto@gmail.com\r\n" +
            "Subject: My first Gmail API message\r\n\r\n" +
            "Message body goes here!")

    // Place messageStr into message.Raw in base64 encoded format
    message.Raw = base64.URLEncoding.EncodeToString(messageStr)

    // Send the message
    _, err = service.Users.Messages.Send(user, &message).Do()
    if err != nil {
        log.Printf("Error: %v", err)
    } else {
        fmt.Println("Message sent!")
    }

这是因为 API 必须检查电子邮件的 header ,如果它不能以正确的方式识别 header ,它将使用默认的 header ,例如 来自:myexample .

HERE您可以查看有关 Go 的 Gmail 包的更多信息。

关于go - 使用 Gmail API 时,Gmail 界面中的发件人电子邮件很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58734439/

相关文章:

mongodb - $literal 在 Golang-mgo 中的用法

去选择语句

algorithm - 递归创建嵌套结构

javascript - 在 javascript 中处理 RFC 2822 电子邮件

go - API 调用会创建 goroutines 吗?

python - Gmail API OAuth2 错误 : redirect_uri_mismatch

PHP - 带有 Google Gmail OAuth2 API 的 ListMessages

linux - TERM=dumb 终端必须具备的功能

go - 将参数作为接口(interface)传递

java - 使用 Gmail 服务器下载电子邮件, 'Authentication Failed'