在沒有SMTP 伺服器的情況下在Go 中發送電子郵件
您尋求透過Go 伺服器應用程式發送大量郵件,避免潛在的配額限制第三方SMTP 伺服器。
替代方法
遺憾的是,如果不直接與 SMTP 伺服器交互,發送電子郵件是不可行的。
委派給外部程式
要繞過 SMTP 伺服器,請考慮將任務委派給另一個能夠發送電子郵件的程式。
在 POSIX 系統(例如 Linux)上,您通常可以尋找 /usr/sbin/sendmail 或 /usr/bin/sendmail 等實用程式。這些程式接受電子郵件並轉發它們以進行傳遞。
使用 gomail 庫
為了簡化此過程,gomail 庫提供了一個用戶友好的 API 用於與外部交互電子郵件發送實用程序,如 Sendmail。
以下是使用gomail 套件的範例:
<code class="go">import ( "bytes" "os/exec" "github.com/go-gomail/gomail" ) const sendmail = "/usr/sbin/sendmail" func sendEmail(m *gomail.Message) error { cmd := exec.Command(sendmail, "-t") cmd.Stdin = bytes.NewReader([]byte(m.Format())) if err := cmd.Run(); err != nil { return err } return nil }</code>
依賴MTA 的優點
雖然它可能在沒有SMTP 伺服器的情況下處理電子郵件發送似乎很方便,依靠像Sendmail 這樣的MTA(郵件傳輸代理)具有以下優點:
以上是如何在不使用 SMTP 伺服器的情況下在 Go 中傳送電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!