Я пытаюсь отправить электронное письмо с помощью SMTP через python. Это мой код:отправка электронной почты с использованием python с использованием smtp
import smtplib
from email.mime.text import MIMEText
textfile='msg.txt'
you='[email protected]'
me='[email protected]'
fp = open(textfile, 'rb')
msg = MIMEText(fp.read())
fp.close()
# me == the sender's email address
# you == the recipient's email address
msg['Subject'] = 'The contents of %s' % textfile
msg['From'] = me
msg['To'] = you
print "reached before s"
s = smtplib.SMTP('127.0.0.1',8000)
print "reached after s"
s.sendmail(me, [you], msg.as_string())
s.quit()
, когда я пытаюсь выполнить этот код, «достигнуто до с» напечатан, а затем переходит в бесконечный цикл или так, т.е. «достигается после с» не печатается и программы все еще работает. Это код сервера:
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
кто-то может понять, что это не так?
У вас нет SMTP-сервера, работающего на вашем компьютере ('127.0.0.1'). У вас есть веб-сервер (HTTP). Я ответил на этот вопрос следующим образом: http://stackoverflow.com/a/23047183/289011 Проверьте это. Это может помочь. – BorrajaX
@BorrajaX Возможно, [yagmail] (https://github.com/kootenpv/yagmail) может быть вам интересен, как и в моем ответе :) – PascalVKooten