Sending an email from python using smtpd.DebuggingServer as STMP server
Asked Answered
P

1

6

I'm trying to send an email using Python and used the following code:

import smtplib
import datetime

SERVER = "localhost"
PORT = 1025

FROM = "[email protected]"
TO = ["[email protected]"]

SUBJECT = "test"

dt = datetime.datetime.now()
TEXT = "blabla bla @ " + str(dt)

message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ",".join(TO), SUBJECT, TEXT)

server = smtplib.SMTP(SERVER, PORT)
server.sendmail(FROM, TO, message)
server.quit()

Not having any STMP server already installed/setup, I simply used this:

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

The code seems to run fine, no errors, and the server even notifies me with this:

---------- MESSAGE FOLLOWS ----------
From: [email protected]
To: [email protected]
Subject: test
X-Peer: 127.0.0.1

blabla bla @ 2014-01-29 14:44:37.219724
------------ END MESSAGE ------------

'[email protected]' is, of course, a representation of a real, existing email address while '[email protected]' is made up.

But no email arrives at [email protected]...

Am I missing something obvious here?

I read somewhere (sorry but cannot find it anymore) that services likes gmail may well block emails coming from non-static IP addresses. Could that be what is going on here?

Permenter answered 29/1, 2014 at 15:9 Comment(0)
A
13

According to python documentation on the smtpd module:

class smtpd.DebuggingServer(localaddr, remoteaddr)
    Create a new debugging server. Arguments are as per SMTPServer. 
    Messages will be discarded, and printed on stdout.

So the module doesn't actually send an email. It prints it in the terminal.

Azarcon answered 11/5, 2014 at 1:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.