Как установить адрес электронной почты для отправки с помощью gomail - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь отправить электронное письмо, используя gomail, и мне нужно установить адрес для отправки по электронной почте. Я нашел ссылку для установки адреса для ответа, который близок, но не совсем то, что я ищу.

Send-as - это функция, которую, как я знаю, поддерживает GMail, другие тоже могут. Я уже настроил send-as в самом GMail и работает правильно, просто пытаюсь проверить, могу ли я установить его через gomail

Я пробовал следующее:

Прочитайте документы для gomail

m.SetHeader("SendAs", emailAddress)
m.SetHeader("Send-As", emailAddress)
m.SetHeader("sendAs", emailAddress)
m.SetAddressHeader("SendAs", emailAddress, "")
m.SetAddressHeader("Send-As", emailAddress, "")
m.SetAddressHeader("sendAs", emailAddress, "")
func TestEmail(to, from, cc, bcc, subject, message, password, fileName string) (string, error) {
    // We need to parse the TO, CC, and BCC lists, which may contain more than one email address each.
    splitToField := strings.Split(to, ",")
    splitCCField := strings.Split(cc, ",")
    splitBCCField := strings.Split(bcc, ",")

    m := gomail.NewMessage()
    m.SetHeader("From", from)
    m.SetHeader("To", splitToField...)
    // If there is a CC address(s), then add them.
    if len(cc) > 0 {
        fmt.Println("CC LEN > 0", len(splitCCField))
        m.SetHeader("Cc", splitCCField...)
    }
    // If there is a BCC address(s), then add them.
    if len(bcc) > 0 {
        fmt.Println("BCC LEN > 0", len(splitBCCField))
        m.SetHeader("Bcc", splitBCCField...)
    }
    m.SetHeader("Subject", subject)
    m.SetBody("text/html", message)
    m.Attach("emailedQuotes/"+fileName)

    // So far, we configured this to ONLY work with GMail accounts.
    // Possibly in the future we can add an input on the front end and have them enter
    // their host/port manually. Or get fancy and parse the email address and have the most common
    // types in a struct.
    d := gomail.NewDialer("smtp.gmail.com", 587, from, password)

    err := d.DialAndSend(m)
    if err != nil {
        fmt.Println("ERROR SENDING EMAIL!", err)
        return "", err
    } else {
        fmt.Println("Email successfully sent to: ", to)
        return "Email successfully sent to:" + to, nil
    }
}

Я ожидаю, что вы сможете ввести имя пользователя / пароль для адреса from и отправлять почту с адресом from, обозначенным как send-as.

Если я выполню это (с правильным именем пользователя / паролем для адреса from), оно отправит электронное письмо правильно, но send-as не получит адрес from. Итак, не работает, но без ошибок.

1 Ответ

0 голосов
/ 05 июня 2019

Документы для API Google, которые вы связали, не говорят о настройке заголовка MIME - насколько я вижу, такой вещи не существует. Поэтому установка заголовка MIME «SendAs» на электронное письмо не будет иметь никакого эффекта.

Вы используете gomail - репозиторий github , в котором говорится, что «Gomail может отправлять электронную почту только через SMTP-сервер» - это означает, что он не использует API-интерфейс, с которым вы связались (который не имеет ничего общего с MIME). заголовки).

Вместо этого вам может пригодиться установка адреса отправителя на адрес, который вы уже указали в своей учетной записи Google в качестве отправителя, и использование gomail для отправки через вашу учетную запись Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...