首頁  >  文章  >  後端開發  >  ## 在 Go 中可以繞過 SMTP 伺服器進行大量電子郵件傳送嗎?

## 在 Go 中可以繞過 SMTP 伺服器進行大量電子郵件傳送嗎?

DDD
DDD原創
2024-10-25 10:57:31934瀏覽

## Can You Bypass SMTP Servers for Bulk Emailing in Go?

在Go 中沒有SMTP 伺服器發送電子郵件

問題:

問題:

是否可以發送不使用第三方SMTP 伺服器批次發送電子郵件?標準函式庫的SMTP套件能提供解決方案嗎?

答案:

沒有SMTP伺服器直接發送郵件是不可行的。但是,您可以利用其他具有電子郵件傳送功能的程式。

使用外部程式的方法:

<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>
一種建議的方法是利用 Sendmail 或 Nullmailer 等外部程式。這些程式處理電子郵件傳送,可以使用 Go 中的 os/exec 套件呼叫。

具體來說,您可以使用 gomail.Message 類型的 WriteTo 方法將電子郵件直接傳送到正在執行的 Sendmail 實例。以下是一個範例程式碼片段:

使用MTA 的優點:雖然與SMTP 伺服器的使用沒有直接關係,但利用成熟的郵件傳輸代理(MTA) )像Sendmail 一樣提供額外的好處。 MTA 提供郵件排隊功能,確保即使在網路中斷的情況下也能可靠地傳送電子郵件。

以上是## 在 Go 中可以繞過 SMTP 伺服器進行大量電子郵件傳送嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn