E-Mails ohne SMTP-Server in Go senden
Frage:
Ist das Versenden möglich? Massen-E-Mails ohne Verwendung von SMTP-Servern von Drittanbietern? Kann das SMTP-Paket der Standardbibliothek eine Lösung bieten?
Antwort:
Das direkte Versenden von E-Mails ohne SMTP-Server ist nicht möglich. Sie können jedoch auch andere Programme verwenden, die über E-Mail-Versandfunktionen verfügen.
Ansatz mit externen Programmen:
Ein empfohlener Ansatz ist die Nutzung externer Programme wie Sendmail oder Nullmailer. Diese Programme kümmern sich um die E-Mail-Zustellung und können mit dem os/exec-Paket in Go aufgerufen werden.
Konkret können Sie die WriteTo-Methode des Typs gomail.Message verwenden, um E-Mails direkt an eine laufende Sendmail-Instanz zu senden. Hier ist ein Beispielcode-Snippet:
<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>
Vorteile der Verwendung von MTAs:
Die Verwendung vollständiger Mail Transfer Agents (MTAs) steht zwar nicht in direktem Zusammenhang mit der SMTP-Servernutzung ) wie Sendmail bietet zusätzliche Vorteile. MTAs stellen E-Mail-Warteschlangen bereit und stellen so sicher, dass E-Mails auch bei Netzwerkausfällen zuverlässig zugestellt werden.
Das obige ist der detaillierte Inhalt von## Können Sie SMTP-Server für den Massen-E-Mail-Versand in Go umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!