Sendmail, postfix, qmail, etc. juste pour tester Définissez MTA et modifiez le fichier de configuration, etc. Cela peut être difficile, mais même ainsi, j'ai envoyé un e-mail de test des déchets Je pense que l'envoyer à l'environnement de production est également étrange. Vous pouvez également utiliser une bibliothèque fictive telle que Minimock, Si vous utilisez une bibliothèque non prise en charge, Je veux l'utiliser quand je suis fatigué.
Twisted est polyvalent, vous pouvez donc facilement configurer un serveur de messagerie.
L'environnement de vérification est le suivant. (C'est mignon que l'environnement et le logiciel soient mélangés)
Logiciel | version |
---|---|
Mac OS X | 10.8 |
Python | 2.7.4 |
Twisted | 0.13.0 |
Sinon, suivez les étapes ci-dessous pour l'installer.
> curl -O http://python-distribute.org/distribute_setup.py
> sudo python distribute_setup.py
Sinon, suivez les étapes ci-dessous pour l'installer.
> sudo easy_install pip
Sinon, suivez les étapes ci-dessous pour l'installer.
> pip install virtualenv
C'est aussi une raison pour installer Twisted globalement, Créons un environnement Sandbox avec le sentiment suivant.
> mkdir -p ~/Sandbox/TwistedMail
> cd ~/Sandbox/TwistedMail
> virtualenv python
> source python/bin/activate
> pip install twisted
Se termine ci-dessous
> twistd mail --maildirdbmdomain=example.com=/tmp/example.com --user=futoase=mogemoge
En tant que serveur de messagerie pour example.com L'utilisateur est futoase, le mot de passe est mogemoge C'est sous forme de paramètres. C'est facile.
Par défaut, le port SMTP est 8025 et le port POP3 est 8110. S'il entre en collision avec le processus MTA existant, je pense que le port devrait rester tel quel.
Ecrire un simple script de test d'envoi de mail en Python, Testons l'envoi et la réception d'e-mails.
Écrivez un script qui envoie Hello world à [email protected].
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib
server = smtplib.SMTP('localhost', 8025)
server.set_debuglevel(1)
server.sendmail('futoase@localhost', '[email protected]', 'Hello world')
server.quit()
Lorsque vous exécutez le script, la commande RCPT, etc. Envoyez à l'autre partie.
send: 'ehlo matsuzakipc.local\r\n'
reply: '500 Command not implemented\r\n'
reply: retcode (500); Msg: Command not implemented
send: 'helo matsuzakipc.local\r\n'
reply: '250 matsuzakipc.local Hello 127.0.0.1, nice to meet you\r\n'
reply: retcode (250); Msg: matsuzakipc.local Hello 127.0.0.1, nice to meet you
send: 'mail FROM:<futoase@localhost>\r\n'
reply: '250 Sender address accepted\r\n'
reply: retcode (250); Msg: Sender address accepted
send: 'rcpt TO:<[email protected]>\r\n'
reply: '250 Recipient address accepted\r\n'
reply: retcode (250); Msg: Recipient address accepted
send: 'data\r\n'
reply: '354 Continue\r\n'
reply: retcode (354); Msg: Continue
data: (354, 'Continue')
send: 'Hello world\r\n.\r\n'
reply: '250 Delivery in progress\r\n'
reply: retcode (250); Msg: Delivery in progress
data: (250, 'Delivery in progress')
send: 'quit\r\n'
reply: '221 See you later\r\n'
reply: retcode (221); Msg: See you later
Recevez Hello world en tant qu'utilisateur [email protected] Écrivez un script. (De plus, utilisez la commande DELE pour supprimer le courrier)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import poplib
client = poplib.POP3('localhost', 8110)
client.user('[email protected]')
client.pass_('mogemoge')
num_messages = len(client.list()[1])
for i in range(num_messages):
for j in client.retr(i+1)[1]:
print(j)
for i in range(num_messages):
client.dele(i)
Lorsque vous exécutez le script pour récupérer le courrier via POP3, Le contenu du script créé par l'expéditeur s'affiche.
Delivered-To: [email protected]
Received: from matsuzakipc.local ([127.0.0.1] helo=matsuzakipc.local)
by matsuzakipc.local with esmtp ([twisted, version 13.0.0])
for <[email protected]>; Tue, 30 Apr 2013 13:23:12 +0900
Hello world
Sans utiliser la bibliothèque fictive Si vous souhaitez configurer un serveur de messagerie de test pour le moment Twisted est facile. Vous n'avez à penser à rien.
Il prend également en charge overSSL. Twisted se sent invincible.
Recommended Posts