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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With