Чтобы отправлять электронные письма в Go (Golang), вы можете использовать различные библиотеки и методы. Вот несколько примеров:
- Использование стандартного пакета 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!")
}
- Использование популярной сторонней библиотеки 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!")
}
- Использование пакета 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!")
}