Sendmail, Postfix, Qmail usw. nur zum Testen Stellen Sie MTA ein und ändern Sie die Konfigurationsdatei usw. Es kann schwierig sein, aber trotzdem habe ich eine Mülltest-E-Mail gesendet Ich finde es auch seltsam, es an die Produktionsumgebung zu senden. Sie können auch eine Scheinbibliothek wie Minimock verwenden. Wenn Sie eine nicht unterstützte Bibliothek verwenden, Ich möchte es benutzen, wenn ich müde bin.
Twisted ist vielseitig einsetzbar, sodass Sie problemlos einen Mailserver einrichten können.
Die Überprüfungsumgebung ist wie folgt. (Es ist süß, dass die Umgebung und Software gemischt sind)
Software | Ausführung |
---|---|
Mac OS X | 10.8 |
Python | 2.7.4 |
Twisted | 0.13.0 |
Wenn nicht, führen Sie die folgenden Schritte aus, um es zu installieren.
> curl -O http://python-distribute.org/distribute_setup.py
> sudo python distribute_setup.py
Wenn nicht, führen Sie die folgenden Schritte aus, um es zu installieren.
> sudo easy_install pip
Wenn nicht, führen Sie die folgenden Schritte aus, um es zu installieren.
> pip install virtualenv
Es ist auch ein Grund, Twisted global zu installieren. Erstellen wir eine Sandbox-Umgebung mit dem folgenden Gefühl.
> mkdir -p ~/Sandbox/TwistedMail
> cd ~/Sandbox/TwistedMail
> virtualenv python
> source python/bin/activate
> pip install twisted
Endet unten
> twistd mail --maildirdbmdomain=example.com=/tmp/example.com --user=futoase=mogemoge
Als Mailserver für example.com Benutzer ist futoase, Passwort ist mogemoge Es ist in Form von Einstellungen. Es ist einfach.
Standardmäßig ist der SMTP-Port 8025 und der POP3-Port 8110. Wenn es mit dem vorhandenen MTA-Prozess kollidiert, sollte der Port meiner Meinung nach unverändert bleiben.
Schreiben Sie ein einfaches Testskript zum Senden von E-Mails in Python. Testen wir das Senden und Empfangen von E-Mails.
Schreiben Sie ein Skript, das Hello world an [email protected] sendet.
#!/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()
Wenn Sie das Skript, den RCPT-Befehl usw. ausführen. An die andere Partei senden.
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
Erhalten Sie Hello World als Benutzer [email protected] Schreiben Sie ein Skript. (Verwenden Sie außerdem den Befehl DELE, um die E-Mail zu löschen.)
#!/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)
Wenn Sie das Skript ausführen, um die E-Mail mit POP3 abzurufen, Der Inhalt des vom Absender erstellten Skripts wird angezeigt.
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
Ohne die Scheinbibliothek zu benutzen Wenn Sie vorerst einen Testmail-Server einrichten möchten Verdreht ist einfach. Sie müssen an nichts denken.
Es unterstützt auch overSSL. Twisted fühlt sich unbesiegbar an.