Qu'utilisez-vous comme SMTP léger pour les e-mails sortants uniquement?
J'utilise une application qui envoie des e-mails via SMTP lorsque des événements se produisent de temps en temps, et je n'ai pas besoin d'un serveur de messagerie complet.
EDIT: Je suis plus qu'heureux d'utiliser quelque chose comme postfix (et fais), si c'est le meilleur choix. Je pensais qu'il pourrait y avoir quelque chose de beaucoup plus simple, qui sort de la boîte.
Il existe plusieurs choix d'agents de transfert de courrier (MTA ou "serveurs de messagerie") minimaux et à relais uniquement, dont certains ont été mentionnés dans d'autres réponses:
Pour que l'un ou l'autre fonctionne, vous avez besoin d'un MTA à part entière quelque part qui relaiera davantage vos messages (appelé "hub de messagerie") et il est fortement recommandé de contrôler ce hub de messagerie. Les mauvaises choses ™ peuvent arriver autrement.
À mon humble avis, la façon la plus simple de le faire est avec postfix. Vous pouvez le configurer comme un relais sortant léger avec ces commandes:
postconf -e relayhost=other.mailserver.com
postconf -e myorigin=my.domainname.com
Tant que le serveur SMTP spécifié dans relayhost
ne nécessite pas d'authentification, vous permet de relayer ou est une destination valide pour l'adresse du destinataire, cela fonctionnera.
Le paramètre myorigin
sera le nom de domaine par défaut. Donc, si vous envoyez du courrier à foo, il ira à [email protected]. Le courrier envoyé par la barre d'utilisateurs proviendra de [email protected].
Si vous devez vous authentifier et souhaitez prendre en charge TLS, exécutez également les commandes suivantes:
postconf -e smtp_tls_security_level=may
postconf -e smtp_sasl_auth_enable=yes
postconf -e smtp_sasl_password_maps=pcre:/etc/postfix/sasl_password_maps
Puis dans /etc/postfix/sasl_password_maps
avoir ce contenu:
/./ username:password
Tout le courrier sera envoyé à votre hôte de relais avec le nom d'utilisateur et le mot de passe spécifiés.
En supposant que vous ayez besoin d'un programme que vous pouvez exécuter à partir du shell comme sendmail (8), peut-être MSMTP répondra à vos besoins? Il peut se connecter à un serveur SMTP distant et envoyer des e-mails qu'il reçoit en tant que stdin, tout comme sendmail.
ESMTP est un serveur de transfert de courrier relais uniquement qui peut fonctionner pour votre application.
Vous pouvez trouver sSMTP adapté à vos besoins. Lisez ceci article à ce sujet et ses limites.
Honnêtement, je ne serais pas trop stressé par l'installation de postfix ou d'exim, même si ce n'est que pour l'envoi d'e-mails.
Si vous utilisez Docker, https://hub.docker.com/r/zixia/simple-mail-forwarder/ est un bon choix pour un déploiement facile et seulement de 10 Mo, avec smtp complet (tls ) soutien.
Techniquement, vous n'avez pas besoin d'un serveur de messagerie sur votre hôte, ce dont vous avez besoin (et probablement déjà) est un client smtp (ou MUA) qui peut se connecter à votre serveur SMTP d'entreprise (qui peut être n'importe où auquel vous pouvez vous connecter). .)
Selon l'application (et le langage de programmation dans lequel elle a été écrite), votre application peut se connecter de différentes manières au serveur SMTP de votre réseau.
Habituellement, avec PHP ou Python, il y a un fichier de configuration avec l'application pour spécifier le serveur "SMTP" (qui peut être sur votre hôte ou ailleurs sur votre réseau.) Si vous avez déjà un mail serveur sur le réseau, puis pointez simplement la configuration vers ce serveur.
Si aucune autre option n'existe, l'application peut générer le message électronique vers une sortie standard que vous pouvez traiter avec quelque chose comme:
listoftargets = "[email protected] [email protected]" echo "Contenu du test" | mail -s "Test Subject" $ listoftargets
Sur certains systèmes, il existe déjà un serveur de messagerie minimal pour l'envoi uniquement.
Sam T.