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

时间:2019-11-06 16:17:17

标签: go 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方法的签名,以使发件人姓名预览为“姓名+姓氏”或完整的电子邮件?

1 个答案:

答案 0 :(得分:1)

以这种方式建立您的信息以实现您想要的目标:

    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必须检查电子邮件中的标头,如果无法正确识别标头,它将使用默认的标头,例如 from:myexample

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