Kann ich unterwegs E-Mails versenden, ohne einen SMTP-Server zu verwenden?

DDD
Freigeben: 2024-10-25 20:27:02
Original
1103 Leute haben es durchsucht

Can I Send Emails in Go Without Using an SMTP Server?

E-Mails ohne SMTP-Server in Go senden

Frage:

Sie möchten senden Massen-E-Mails, ohne aufgrund von Nutzungsbeschränkungen auf einen externen SMTP-Server angewiesen zu sein. Können Sie mit der Standardbibliothek von Go E-Mails ohne SMTP-Server versenden?

Antwort:

Um E-Mails ohne SMTP-Server zu versenden, müssen Sie die Aufgabe an ein anderes geeignetes Programm delegieren des Versendens von E-Mails. In POSIX-Systemen steht hierfür häufig das Programm /usr/sbin/sendmail zur Verfügung. Sie können es mit der Option -t aufrufen, um Empfängeradressen aus den An-Headern der Nachricht abzurufen.

Verwenden der Standardbibliothek mit Sendmail

Sie können die Datei os/exec verwenden , net/mail und net/textproto-Pakete, um Sendmail direkt aufzurufen, aber das gomail-Paket bietet eine einfachere Lösung. Sein Nachrichtentyp umfasst eine WriteTo()-Methode, die in eine laufende Sendmail-Instanz schreiben kann. Hier ist ein Beispiel:

<code class="go">import (
    "os/exec"

    "github.com/go-gomail/gomail"
)

const sendmailPath = "/usr/sbin/sendmail"

func sendEmail(m *gomail.Message) error {
    cmd := exec.Command(sendmailPath, "-t")
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    stdin, err := cmd.StdinPipe()
    if err != nil {
        return err
    }

    if err := cmd.Start(); err != nil {
        return err
    }

    if _, err := m.WriteTo(stdin); err != nil {
        return err
    }

    if err := stdin.Close(); err != nil {
        return err
    }

    if err := cmd.Wait(); err != nil {
        return err
    }

    return nil
}</code>
Nach dem Login kopieren

Vorteile der Verwendung eines MTA:

Während die Verwendung eines MTA wie ein zusätzlicher Schritt erscheinen mag, bietet sie den Vorteil der E-Mail-Warteschlange. Wenn ein MTA eine Nachricht nicht sofort zustellen kann, beispielsweise während eines Netzwerkausfalls, speichert er die Nachricht in einer Warteschlange und versucht wiederholt, sie zuzustellen, bis dies erfolgreich ist oder eine Zeitüberschreitung auftritt.

Das obige ist der detaillierte Inhalt vonKann ich unterwegs E-Mails versenden, ohne einen SMTP-Server zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage