在没有 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中文网其他相关文章!