Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Kurdami programas turėsite siųsti el. laiškus įvairiais tikslais – nuo ​​pranešimų iki autentifikavimo ir daug kitų. „Go“ teikia smtp ir Paštas paketus savo standartinėje bibliotekoje el. laiškų siuntimui. „Go“ ekosistemoje taip pat yra daug trečiųjų šalių el. pašto paketų.

Dėl integruotų pašto paketų el. pašto siuntimas yra sudėtinga užduotis. Jei nesate serverio programų kūrėjas, galite rasti smtp ir Paštas sudėtingus naudoti ir konfigūruoti paketus.

Viena populiari alternatyva yra Jordan Wright's paštu pašto siuntimo sudėtingumą. Tai taip pat prideda funkcijų, kurių nerasite smtp ir Paštas paketus.

Darbo su el. pašto paketu pradžia

The paštu paketas yra lengva, tvirta ir lanksti biblioteka, populiari dėl savo paprastumo. Turėdami vos kelias kodo eilutes, galite sukurti ir išsiųsti el. laišką su priedais, HTML turiniu ir kt. Paketas taip pat palaiko pažangias funkcijas, tokias kaip saugus SMTP ryšys ir keli gavėjai, todėl tai yra universalus įrankis jūsų el.

instagram viewer

El. pašto paketas taip pat palaiko CC ir BCC laukus, kelių formatų el. pašto adresus, skaitymo kvitus ir pasirinktines antraštes.

Kadangi paketas nėra integruotas į Go standartinę biblioteką, turėsite jį įdiegti kartu su eik paimk komandą. El. pašto paketas palaiko „Go“ 1.15 ir naujesnę versiją.

Vykdykite šią komandą, kad įdiegtumėte paketą į savo projekto priklausomybes po naujo projekto inicijavimo.

eik gaukite github.com/jordan-wright/email

Įdiegę el. pašto paketą, galite jį importuoti nurodydami vietą, susijusią su diegimo keliu:

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

Jūs naudosite fmt paketas, skirtas spausdinti išvestį į konsolę ir smtp paketą autentifikavimo tikslais.

Laiškų siuntimas su el. pašto paketu

Norėdami išsaugoti pašto duomenis, turėsite deklaruoti kintamuosius. Deklaruokite el. pašto ir slaptažodžio kintamuosius.

paštu := "tavo elektroninis paštas"
slaptažodis := „jūsų programos slaptažodis“

Galite užkoduoti slaptažodį arba naudoti aplinkos kintamąjį failą geresniam saugumui.

The Paštas ir Slaptažodis kintamieji turėtų turėti atitinkamai jūsų el. pašto adresą ir slaptažodį.

Turėsite deklaruoti pašto pagrindinio adreso ir prievado numerio kintamuosius. Čia yra Yahoo pašto prieglobos adresas ir prievado numeris:

prieglobos adresas := "smtp.mail.yahoo.com"
hostPort := "465"

Taip pat turėsite sukurti naują el. pašto egzempliorių, kad galėtumėte siųsti el. laiškus su paštu paketą. Galite naudoti NewEmail metodą paštu el. pašto egzemplioriaus inicijavimo paketas:

newEmail := el. Naujas elektroninis paštas()

The Naujas elektroninis paštas metodas grąžina struktūros egzempliorių, kurį galite modifikuoti savo el. laiško elementams.

Galite naudoti Nuo ir Į struktūros laukus, kad pridėtumėte siuntėjo ir gavėjo el. laiškus prie el. pašto egzemplioriaus.

Naujas elektroninis paštas. Nuo = paštas
Naujas elektroninis paštas. Kam = []styga{"gavėjų sąrašas"}

The Į laukas yra neribotos talpos eilučių dalis, kurią galite naudoti deklaruodami visus gavėjų adresus.

Galite pridėti CC ir BCC el. pašto laukus naudodami Bcc ir Cc struktūros egzemplioriaus laukai:

Naujas elektroninis paštas. Bcc = []styga{"nematomų kopijų sąrašas"}
Naujas elektroninis paštas. Cc = []styga{"kopijų sąrašas"}

Pašto turiniui galite pridėti el. laiško temą ir teksto turinį naudodami Tema ir Tekstas struktūros laukai. Tema yra eilutės laukas, o teksto turinys yra baitų dalis.

Naujas elektroninis paštas. Tema = "El. pašto tema"
Naujas elektroninis paštas. Tekstas = []baitas(„Jūsų el. pašto adresas“)

Pridėję visus privalomus laukus, galite išsiųsti el. laišką naudodami Siųsti el. pašto egzemplioriaus metodas. The Siųsti metodas apima pagrindinio kompiuterio adresą, prievado numerį ir egzempliorių smtp paketas PlainAuth.

klaida := naujas el. Siųsti (
fmt. Sprintf(„%s:%s“, pagrindinio kompiuterio adresas, prieglobos prievadas),
smtp. PlainAuth("", paštas, slaptažodis, prieglobos adresas)
)

jeigu klysta! = nulis {
fmt. Println("Siunčiant laišką įvyko klaida")
} Kitas {
fmt. Println("Laiškas išsiųstas sėkmingai")
}

The Siųsti metodas grąžina klaidą, kurią galite apdoroti arba nulis jei nėra klaidų.

Sėkmingai išsiuntėte laišką su paštu paketą su mažiau eilučių, nei turėtumėte rašyti išsiųsti laišką su smtp paketą.

Galite siųsti laiškus naudodami integruotą SMTP paketą

„Go“ yra gerai suplanuota kalba, nes jos standartinėje bibliotekoje yra daug funkcijų, kurių prireiks kuriant visas žiniatinklio programas be išorinių priklausomybių ar trečiųjų šalių paketų.

The smtp paketas yra naudingas siunčiant el. laiškus įvairiomis paslaugomis, turinčiomis panašias funkcijas kaip paštu paketą.