Menghantar E-mel tanpa Pelayan SMTP dalam Go
Soalan:
Adakah mungkin untuk menghantar e-mel pukal tanpa menggunakan pelayan SMTP pihak ketiga? Bolehkah pakej SMTP perpustakaan standard menyediakan penyelesaian?
Jawapan:
Menghantar e-mel secara langsung tanpa pelayan SMTP tidak boleh dilaksanakan. Walau bagaimanapun, anda boleh menggunakan program lain yang mempunyai keupayaan menghantar e-mel.
Pendekatan Menggunakan Program Luaran:
Satu pendekatan yang disyorkan ialah memanfaatkan program luaran seperti Sendmail atau Nullmailer. Program ini mengendalikan penghantaran e-mel dan boleh digunakan menggunakan pakej os/exec dalam Go.
Secara khusus, anda boleh menggunakan kaedah WriteTo bagi jenis gomail.Message untuk menghantar e-mel terus ke contoh Sendmail yang sedang berjalan. Berikut ialah contoh coretan kod:
<code class="go">import ( "os" "os/exec" "github.com/gomail/gomail" ) func submitMail(m *gomail.Message) (err error) { const sendmail = "/usr/sbin/sendmail" cmd := exec.Command(sendmail, "-t") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr pw, err := cmd.StdinPipe() if err != nil { return } err = cmd.Start() if err != nil { return } var errs [3]error _, errs[0] = m.WriteTo(pw) errs[1] = pw.Close() errs[2] = cmd.Wait() for _, err = range errs { if err != nil { return } } return }</code>
Kelebihan Menggunakan MTA:
Walaupun tidak berkaitan secara langsung dengan penggunaan pelayan SMTP, menggunakan Ejen Pemindahan Mel (MTA) sepenuhnya ) seperti Sendmail menawarkan faedah tambahan. MTA menyediakan baris gilir mel, memastikan bahawa e-mel dihantar dengan pasti walaupun dalam kes gangguan rangkaian.
Atas ialah kandungan terperinci ## Bolehkah Anda Memintas Pelayan SMTP untuk E-mel Pukal dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!