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

Sender email is strange in gmail interface while using Gmail API

我使用 google.golang.org/api/gmail/v1 的方法发送消息 "me" userId:

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

比方说,我的电子邮件地址是 myemail@gmail.com。我希望收件人在 From 字段中通过我的电子邮件(或姓名 + 姓氏)收到我的消息。但是,在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 必须检查电子邮件中的 headers,如果它无法以正确的方式识别 headers,它将使用默认值,例如例如 来自:myexample.

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