Jak wysłać pocztę w Go za pomocą pakietu e-mail

Jak wysłać pocztę w Go za pomocą pakietu e-mail

Tworząc aplikacje, będziesz musiał wysyłać wiadomości e-mail do różnych celów, od powiadomień po uwierzytelnianie i wiele innych. Go udostępnia pakiety smtp i mail w swojej standardowej bibliotece do wysyłania wiadomości e-mail. W ekosystemie Go istnieje również wiele pakietów e-mail innych firm.

Wbudowane pakiety pocztowe sprawiają, że wysyłanie wiadomości e-mail jest złożonym zadaniem. Jeśli nie jesteś programistą aplikacji serwerowych, pakiety smtp i mail mogą być trudne w użyciu i konfiguracji.

Jedną z popularnych alternatyw jest pakiet e -mail Jordana Wrighta, który streszcza złożoność wysyłania poczty. Dodaje również funkcje, których nie znajdziesz w pakietach smtp i mail .

Pierwsze kroki z pakietem e-mail

podgląd github pakietu e-mail

Pakiet e-mail to lekka, solidna i elastyczna biblioteka, popularna ze względu na swoją prostotę. Wystarczy kilka wierszy kodu, aby utworzyć i wysłać wiadomość e-mail z załącznikami, zawartością HTML i nie tylko. Pakiet obsługuje również zaawansowane funkcje, takie jak bezpieczne połączenia SMTP i wielu odbiorców, co czyni go wszechstronnym narzędziem do Twoich potrzeb poczty e-mail.

Pakiet e-mail obsługuje również pola DW i BCC, adresy e-mail w wielu formatach, potwierdzenia odczytu i niestandardowe nagłówki.

Ponieważ pakiet nie jest wbudowany w standardową bibliotekę Go, musisz go zainstalować za pomocą polecenia go get . Pakiet e-mail obsługuje wersje Go 1.15 i nowsze.

Uruchom to polecenie, aby zainstalować pakiet w zależnościach projektu po zainicjowaniu nowego projektu.

go get github.com/jordan-wright/email

Po zainstalowaniu pakietu e-mail możesz go zaimportować, określając lokalizację względem ścieżki instalacji:

import (
    "fmt"
    "github.com/jordan-wright/email"
    "net/smtp"
)

Użyjesz pakietu fmt do wydrukowania danych wyjściowych na konsoli, a pakietu smtp do celów uwierzytelnienia.

Wysyłanie wiadomości e-mail za pomocą pakietu e-mail

Będziesz musiał zadeklarować zmienne do przechowywania danych dla Twojej poczty. Zadeklaruj zmienne dla swojego adresu e-mail i hasła.

mail: = "your email"
password: = "your app password"

Możesz zakodować hasło na stałe lub użyć pliku zmiennej środowiskowej w celu zwiększenia bezpieczeństwa.

Zmienne mail i password powinny zawierać odpowiednio adres e-mail i hasło.

Będziesz musiał zadeklarować zmienne dla adresu hosta i numeru portu dla poczty. Oto adres hosta i numer portu poczty Yahoo:

hostAddress: = "smtp.mail.yahoo.com"
hostPort: = "465"

Będziesz także musiał utworzyć nową instancję e-mail, aby wysyłać wiadomości e-mail z pakietem e-mail . Możesz użyć metody NewEmail pakietu e-mail , aby zainicjować instancję e-mail dla swojej poczty:

newEmail: = email.NewEmail()

Metoda NewEmail zwraca instancję struktury, którą możesz zmodyfikować dla elementów wiadomości e-mail.

Możesz użyć pól Od i Do struktury, aby dodać wiadomości e-mail nadawcy i odbiorcy do swojej instancji poczty e-mail.

newEmail.From = mail
newEmail.To = []string{"list of recipients"}

Pole Do to wycinek ciągów znaków o nieograniczonej pojemności, którego można użyć do zadeklarowania wszystkich adresów odbiorców.

Możesz dodać pola DW i BCC swojego e-maila za pomocą pól Bcc i DW instancji struktury:

newEmail.Bcc = []string{"list of bcc"}
newEmail.Cc = []string{"list of cc"}

W przypadku treści wiadomości możesz dodać temat i treść wiadomości e-mail, korzystając z pól Temat i Tekst struktury. Temat jest polem tekstowym, a zawartość tekstowa to wycinek bajtów.

newEmail.Subject = "The Email subject"
newEmail.Text = []byte("Body of your email")

Po dodaniu wszystkich wymaganych pól możesz wysłać wiadomość e-mail przy użyciu metody Send swojej instancji poczty e-mail. Metoda Send przyjmuje adres hosta, numer portu hosta i instancję PlainAuth pakietu smtp .

err: = newEmail.Send(
   fmt.Sprintf("%s:%s", hostAddress, hostPort),
   smtp.PlainAuth("", mail, password, hostAddress)
)

if err! = nil {
    fmt.Println("There was an error sending the mail")
} else {
    fmt.Println("The mail was sent successfully")
}

Metoda Send zwraca błąd, który można obsłużyć lub nil , jeśli nie ma żadnych błędów.

wyniku wysłania wiadomości

Pomyślnie wysłałeś e-mail z pakietem e-mail zawierającym mniej wierszy niż trzeba by napisać, aby wysłać e-mail z pakietem smtp .

Możesz wysyłać pocztę za pomocą wbudowanego pakietu SMTP

Go to dobrze zaplanowany język, ponieważ jego standardowa biblioteka jest dostarczana z większością funkcji potrzebnych do tworzenia kompletnych aplikacji internetowych bez zewnętrznych zależności lub pakietów innych firm.

Pakiet smtp jest przydatny do wysyłania wiadomości e-mail za pośrednictwem różnych usług o podobnych funkcjach do pakietu e-mail .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *