Я использую модуль smtpd в качестве сервера и smtplib в качестве клиента. Я использую приведенный ниже код. Я хочу ответить клиенту, с которого сообщение было получено на сервере. В идеале я хочу отправить файл, который я создаю, как электронное письмо клиенту.
from datetime import datetime
import asyncore
import smtpd
from smtpd import SMTPServer
class EmlServer(SMTPServer):
no = 0
def process_message(self, peer, mailfrom, rcpttos, data, mail_options=None,rcpt_options=None):
filename = '%s-%d.txt' % (datetime.now().strftime('%Y%m%d%H%M%S'),
self.no)
f = open(filename, 'w')
f.write(str(data))
f.close()
print(f'Saved as {filename}')
def run():
foo = EmlServer(('localhost', 25), None)
try:
asyncore.loop()
except KeyboardInterrupt:
pass
if __name__ == '__main__':
run()`
, и это код клиента
import smtplib
from email.mime.text import MIMEText
sender = 'ME@EXAMPLE.COM'
targets = ['HE@EXAMPLE.COM', 'SHE@EXAMPLE.COM']
msg = MIMEText('Hi, how are you today?')
msg['Subject'] = 'Hello'
msg['From'] = sender
msg['To'] = ', '.join(targets)
server = smtplib.SMTP('localhost',25)
server.sendmail(sender, targets, msg.as_string())
server.quit()