Maison  >  Article  >  développement back-end  >  Comment puis-je envoyer des e-mails en Go sans utiliser de serveur SMTP ?

Comment puis-je envoyer des e-mails en Go sans utiliser de serveur SMTP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 09:58:02378parcourir

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

Envoi d'e-mails dans Go sans serveur SMTP

Vous cherchez à envoyer des e-mails en masse via une application serveur Go, en évitant les limitations de quota potentielles imposées par serveurs SMTP tiers.

Approches alternatives

Malheureusement, sans interagir directement avec un serveur SMTP, l'envoi d'e-mails n'est pas réalisable.

Déléguer à des programmes externes

Pour contourner un serveur SMTP, envisagez de déléguer la tâche à un autre programme capable d'envoyer des e-mails.

Sur les systèmes POSIX (par exemple, Linux), vous pouvez généralement recherchez des utilitaires comme /usr/sbin/sendmail ou /usr/bin/sendmail. Ces programmes acceptent les messages électroniques et les transmettent pour livraison.

À l'aide de la bibliothèque gomail

Simplifiant ce processus, la bibliothèque gomail fournit une API conviviale pour interagir avec des utilitaires d'envoi d'e-mails comme Sendmail.

Voici un exemple utilisant le package 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>

Avantages de s'appuyer sur un MTA

Bien que cela puisse semble pratique pour gérer l'envoi d'e-mails sans serveur SMTP, s'appuyer sur un MTA (Mail Transfer Agent) comme Sendmail offre des avantages :

  • Email Queuing : Les MTA assurent la mise en file d'attente des e-mails, garantissant ainsi les messages sont livrés même lors de pannes temporaires du réseau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn