Déboguer la transmission des e-mails avec smtpd.DebuggingServer de Python

Si vous développez un système qui envoie des e-mails, selon l'environnement réseau sur lequel vous travaillez, la limite de Blocage du port sortant 25 du fournisseur que vous utilisez est de 25. L'envoi de courrier via le numéro de port peut être bloqué.

Vous pouvez l'envoyer via le serveur SMTP spécifié par le fournisseur, mais c'est gênant car vous devez inclure les informations utilisateur SMTP dans les paramètres d'envoi de courrier pour le développement.

Au moment du développement, je voulais pouvoir vérifier le contenu du mail envoyé même s'il n'était pas réellement envoyé, alors quand je cherchais un serveur SMTP pour le débogage, j'ai trouvé smptd.DebuggingServer en Python. Il y avait une bibliothèque standard appelée 2 / library / smtpd.html # debuggingserver-objects).

Vous pouvez démarrer un serveur SMTP factice avec le one-liner suivant.

$ python -m smtpd -n -c DebuggingServer localhost:1025

En regardant la source du module smtpd, il implémente uniquement SMTPServer # process_message, donc je pense que c'est une bonne idée de créer un serveur de débogage qui a été ajusté si nécessaire.

http://hg.python.org/cpython/file/2.7/Lib/smtpd.py#l330:

class DebuggingServer(SMTPServer):
    # Do something with the gathered message
    def process_message(self, peer, mailfrom, rcpttos, data):
        ...
        print '---------- MESSAGE FOLLOWS ----------'
        for line in lines:
           ...
        print '------------ END MESSAGE ------------'

Il existait déjà une bibliothèque appelée dsmtpd.

Recommended Posts

Déboguer la transmission des e-mails avec smtpd.DebuggingServer de Python
Transmission de courrier facile avec Hâte Python3
J'ai essayé d'envoyer un email avec SendGrid + Python
Envoyer des e-mails avec Django
Imprimer le débogage avec PyScribe
Valider l'e-mail avec Python
Envoyer des e-mails par Python
J'ai essayé d'envoyer un e-mail d'Amazon SES avec Python
Reconnaissance faciale avec OpenCV de Python
Implémenter des sous-commandes avec l'argparse de Python
Déboguer Python avec VS Code
Déboguer avec l'interpréteur PEPPER python
Envoyer du courrier à l'aide du smtplib de Python
Déboguer les bibliothèques partagées avec VScode
J'ai essayé d'envoyer du courrier depuis le serveur Sakura avec flask-mail