2009-04-19 9 views
3

je dois envoyer un courrier électronique sous Linux delbian. Comment envoyer? Je cours mon serveur sur la boîte de Linux de 256 Mo et j'ai entendu postfix et sendmail est exagéré.comment envoyer du courrier en python ssmtp vs smtplib

Récemment, je suis tombé sur le ssmtp, qui semble être un exécutable, doit être exécuté en tant que processus et appelé via Python en utilisant os modules. Alternativement, python fournit déjà smtplib qui fonctionne bien avec moi.

Quel est l'avantage d'utiliser ssmtp sur smtplib de python?

Répondre

5

Dans un programme Python, il n'y a aucun avantage. Le seul but de ssmtp est d'enrouler le protocole SMTP dans l'API sendmail. C'est-à-dire qu'il fournit un programme /usr/sbin/sendmail qui accepte les mêmes options, arguments et entrées que le sendmail complet (bien que la plupart des options ne fassent rien); mais dans les coulisses, au lieu de traiter l'email lui-même, il envoie le message à un serveur SMTP. Ceci est pour les systèmes qui ont besoin d'un programme présent sendmail, peut-être parce qu'ils ne comprennent pas SMTP - par exemple, je pense que les anciennes versions de PHP ont cette exigence, et même dans les versions récentes il pourrait encore être plus facile de configurer PHP à utiliser l'interface dite sendmail (c'est-à-dire le programme sendmail) que d'utiliser directement SMTP. (Je n'ai pas utilisé PHP depuis un moment, je ne suis pas sûr de l'état actuel)

Cependant, en Python, la situation est inversée: vous avez une bibliothèque intégrée qui facilite l'utilisation directe de SMTP, alors que En utilisant sendmail, vous devez appeler le module subprocess qui est quelque peu maladroit et qui dépend également de choses qui ne font pas partie de Python. Donc, fondamentalement, il n'y a aucune raison de ne pas utiliser smtplib.

+1

bonne information. merci beaucoup – Krish

+0

Il me semble que ssmtp vous permet également de cacher vos informations d'identification de compte, et limite ce que votre application peut faire pour l'envoi de courrier. Est-ce que je manque quelque chose? – kberg

2

En outre, postfix est très facile à installer en mode "satellite", où tout ce qu'il fait est la file d'attente et de livrer des e-mails pour vous. Bien plus facile que de mettre en place votre propre file d'attente. La plupart des systèmes de gestion de paquets décents vous permettent de le configurer de cette façon.

1

Il existe d'autres expéditeurs SMTP légers, tels que msmtp, celui que je préfère.

Mais Postfix est bien pour une machine de 256 Mb. La bonne chose à propos d'un MTA complet comme Postfix est qu'il conserve le message et réessaie si le serveur de destination est en panne. Avec smtplib et le serveur sur une machine distante, vous programmez dépend désormais du réseau ...

Questions connexes