как я могу прикрепить файлы mp4 к почте с помощью golang (я использую gomail)

Вот код:

      func sendMail() error{

m := gomail.NewMessage()
m.SetHeader("From", From)
m.SetHeader("To", "bacobas.f@gmail.com")
m.SetHeader("Subject", "Hello!")
m.SetBody("text/html", "Hello <b>Bob</b> and <i>Cora</i>!")
m.Attach("./video.mp4")
//m.Attach("./Autorizzazione.pdf")

d := gomail.NewDialer(SmtpHost, SmtpPort, From, PswFrom)

// Send the email to Bob, Cora and Dan.
if err := d.DialAndSend(m); err != nil {
    return err
}
return nil}

Если прикрепить "Autorizzazione.pdf", все работает. Также, если я ничего не прикрепляю. Но если я попытаюсь прикрепить этот файл .mp4, вывод будетError: gomail: could not send email 1: write tcp <my LAN wi-fi ip address>:54988->142.250.147.109:587: wsasend: An existing connection was forcibly closed by the remote host.

Эта функция вызывается внутриHandleFunc()на моем маленьком http-сервере, и возврат этой функции в основном «печатается» как возврат этого API

Может кто-то мне помочь, пожалуйста?

1 ответ

Следующий пример работает для вас?

Источник: Отправка электронной почты и вложений с помощью GO (Golang) с использованием SMTP, Gmail и OAuth2.

      package gomail

import (
   "errors"
   "fmt"
   "net/smtp"
)

var emailAuth smtp.Auth

func SendEmailSMTP(to []string, data interface{}, template string) (bool, error) {
   emailHost := "smtp.gmail.com"
   emailFrom := "yourEmail@gmail.com"
   emailPassword := "yourEmailPassword"
   emailPort := 587

   emailAuth = smtp.PlainAuth("", emailFrom, emailPassword, emailHost)

   emailBody, err := parseTemplate(template, data)
   if err != nil {
      return false, errors.New("unable to parse email template")
   }

   mime := "MIME-version: 1.0;\nContent-Type: text/plain; charset=\"UTF-8\";\n\n"
   subject := "Subject: " + "Test Email" + "!\n"
   msg := []byte(subject + mime + "\n" + emailBody)
   addr := fmt.Sprintf("%s:%s", emailHost, emailPort)

   if err := smtp.SendMail(addr, emailAuth, emailFrom, to, msg); err != nil {
      return false, err
   }
   return true, nil
}
Другие вопросы по тегам