Отправляйте электронные письма в Go (Golang) с примерами кода

Чтобы отправлять электронные письма в Go (Golang), вы можете использовать различные библиотеки и методы. Вот несколько примеров:

  1. Использование стандартного пакета net/smtp:
package main
import (
    "log"
    "net/smtp"
)
func main() {
    from := "sender@example.com"
    password := "password"
    to := "recipient@example.com"
    smtpHost := "smtp.example.com"
    smtpPort := "587"
    msg := []byte("Subject: Hello!\r\n" +
        "\r\n" +
        "This is the email body.")
    auth := smtp.PlainAuth("", from, password, smtpHost)
    err := smtp.SendMail(smtpHost+":"+smtpPort, auth, from, []string{to}, msg)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Email sent successfully!")
}
  1. Использование популярной сторонней библиотеки gomail:
package main
import (
    "log"
    "gopkg.in/gomail.v2"
)
func main() {
    from := "sender@example.com"
    password := "password"
    to := "recipient@example.com"
    smtpHost := "smtp.example.com"
    smtpPort := 587
    msg := gomail.NewMessage()
    msg.SetHeader("From", from)
    msg.SetHeader("To", to)
    msg.SetHeader("Subject", "Hello!")
    msg.SetBody("text/plain", "This is the email body.")
    dialer := gomail.NewDialer(smtpHost, smtpPort, from, password)
    err := dialer.DialAndSend(msg)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Email sent successfully!")
}
  1. Использование пакета mail из стандартной библиотеки net/mail:
package main
import (
    "log"
    "net/mail"
    "net/smtp"
)
func main() {
    from := mail.Address{Name: "Sender", Address: "sender@example.com"}
    password := "password"
    to := mail.Address{Name: "Recipient", Address: "recipient@example.com"}
    smtpHost := "smtp.example.com"
    smtpPort := "587"
    subject := "Hello!"
    body := "This is the email body."
    msg := []byte("Subject: " + subject + "\r\n" +
        "\r\n" +
        body)
    auth := smtp.PlainAuth("", from.Address, password, smtpHost)
    err := smtp.SendMail(smtpHost+":"+smtpPort, auth, from.Address, []string{to.Address}, msg)
    if err != nil {
        log.Fatal(err)
    }
    log.Println("Email sent successfully!")
}