Отправитель электронной почты странно в интерфейсе Gmail при использовании Gmail API - PullRequest
0 голосов
/ 06 ноября 2019

Я использую метод google.golang.org/api/gmail/v1 для отправки сообщений со «мной» userId:

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

Допустим, мой адрес электронной почты myemail@gmail.com. Я ожидаю, что получатель получит мое сообщение с моим адресом электронной почты (или Имя + Фамилия) в поле From. Однако в интерфейсе Gmail он отображается как myemail. Та же ситуация, когда я настраивал электронную почту вручную.

Не могли бы вы помочь мне определить правильную сигнатуру для этого метода API, чтобы имя отправителя предварительно просматривалось как Имя + Фамилия или как полный адрес электронной почты?

1 Ответ

1 голос
/ 07 ноября 2019

Создайте свое сообщение таким образом, чтобы достичь желаемого:

    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 должен проверять заголовки из электронной почты и, если он не распознает заголовки в правильном направлениион будет использовать значение по умолчанию, например, из: myexample .

ЗДЕСЬ , вы можете узнать больше о пакете Gmail Go.

...