Es sieht bis jetzt so aus:
Code: Alles auswählen
#/usr/bin/python3
import time
import smtplib
import poplib
import email
import markdown
class Mail():
def __init__(self, address, popserver, smtpserver, username=None):
if username is None:
self.username = address
else:
self.username = username
self.address = address
self.popserver = popserver
self.smtpserver = smtpserver
self.mails = []
def send_mail(self, receiver, subject, text, passwd,
use_markdown=False, verbose=False):
if use_markdown:
text = markdown.markdown(text)
mail = """From: {}
To: {}
Time: {}
Subject: {}
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">'
</head>
<body>
{}
</body>
</html>""".format(self.address, receiver, time.ctime(time.time()), subject, text)
mail = markdown.markdown(mail)
server = smtplib.SMTP(self.smtpserver)
server.login(self.address, passwd)
server.sendmail(self.address, receiver, mail)
server.quit()
return 0
def get_mails(self, passwd):
server = poplib.POP3(self.popserver)
server.getwelcome()
server.user(self.username)
server.pass_(passwd)
emails = server.list()
for i in emails[1]:
email = dict.fromkeys(('number', 'bytes', 'header',
'message', 'octets'))
i = i.decode('utf-8').split(' ')
email['number'] = i[0]
email['bytes'] = i[1]
header,message,octets = server.retr(i[0])
email['header'] = header
email['message'] = message
email['octets'] = octets
self.mails.append(email)
server.quit()
def print_mails(self, verbose=False):
for i in self.mails:
print('#####')
print(
"""Number: {}
Bytes: {}
Octets: {}
Header: {}""".format(i['number'], i['bytes'], i['octets'],
i['header'])
)
if verbose:
for line in i['message']:
print(line.decode('utf-8'))
print('-----')
mail = self.decode_mail(i['message'])
print('--- HEADER ---')
header = dict(email.parser.Parser().parsestr(mail))
for k, v in header.items():
print(k+':: ', v)
print('\n\n--- MESSAGE ---')
print(email.message_from_string(mail))
def delete_mail(self, passwd, number):
server = poplib.POP3(self.popserver)
server.getwelcome()
server.user(self.username)
server.pass_(passwd)
server.dele(number)
server.quit()
def decode_mail(self, mail):
text = ''
for line in mail:
line = line.decode('utf-8')
text += line+'\n'
return text
Ein kleines Beispiel:
Code: Alles auswählen
>>>import mail
>>>account = mail.Mail('meine@email.de', 'pop.1und1.de', 'smtp.1und1.de')
>>>account.get_mails('topsecret')
>>>account.print_mails()
#jetzt kommt das Problem:
#Die Ausgabe ab der Zeile, in welcher "print('\n\n--- MESSAGE ---") steht:
--- MESSAGE ---
Return-Path: <meine@email.de>
Received: from mout.kundenserver.de ([212.227.126.130]) by mx.kundenserver.de
(mxeue004) with ESMTPS (Nemesis) id 0M6KYJ-1bLRbF1mLD-00ySpQ for
<meine@email.de>; Fri, 05 Aug 2016 17:30:42 +0200
Received: from [127.0.0.1] ([217.227.26.103]) by mrelayeu.kundenserver.de
(mreue002) with ESMTPA (Nemesis) id 0MZ5ZT-1bjjij0tIx-00VdZd for
<meine@email.de>; Fri, 05 Aug 2016 17:30:42 +0200
From: meine@email.de
To: meine@email.de
Time: Fri Aug 5 17:30:51 2016
Subject: test
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
Date: Fri, 05 Aug 2016 17:30:42 +0200
Message-ID: <0MNyfL-1bd6wT16Kp-007X7l@mrelayeu.kundenserver.de>
X-Provags-ID: V03:K0:wNxYRKpwRvi6GWP+wjfYTsCbpHTfxouv9hSt1zB2lyDIGX1m6Cq
hsKI6vDksZMwDHRlx6FEDf/xLy4HCwq7rbrZ7WTCodoYfFCHWwOjuOpObTQotGqtPJkf1U8
W4+42S0CNNYroq6e8MMzdy4hVkR0bJUaljcvkI77xnydmTZ3iJLoT04fZd/Cmdpz1Mw07F2
rQg+hnP+dxZB/6WTkj6KQ==
X-UI-Out-Filterresults: notjunk:1;V01:K0:crw3O7LMe+E=:xTqhm1Q655eh7S7c5w9CZQ
rarM+wEF3I4F9OvtAbKrmmmx5UMASk+vRm9zgVJy7dVNOoR5FWCX25Ge/CyDCAGStD83DrNdn
vskTsjpuUMOWonMc85zEdWCjzvLlkFP1Fi2r+xfWHzV9Foo/Ao86svSeAWxxx8yIzKrBAVcZR
krb23X+qw0MnIakbeP+fqPhq9Uvy8qIa6xITFYI3q8AzgkNJ3MTA0hnxCUdTz9bVY4Cy8z/ZI
LvUB8FiUZ7BlQiKTZPhll+NXaqQ1ivJMkYYyhrhLbySNjZ+P5zU1Zp2ajE5YxM4NxVjgk0i4R
L0KuTeAa9zcA1mu4U/paMTk0BkRAcG+r2C4IAj4fpiCO5kgeTTWfzRQ+7oTUrgm2Y7j8JtEof
kNNo8v8FuywS6gEK+dhaQPkzytcrmXcDjR26LUY8VAcI+j33UKFOWS7r6uv0/AhvpObGPdixj
UfytuhcCLhz1NDFYvINxXh75gsJ4kmoZvSZwh0Jp3S0+rbc+ELIdAhzzMNy868JpY7kQBfnlD
yPtp4FTEcKUVCPqj5TRLIrsrbz6SNVvZAU1Nc485i1PdmY2vVoMI2P6rawhRWYbbH6Uw817LW
c2O0CQ3+tFWQEPoCMMRX0CMwY0AGwITtN/v3hW2RHFTTe4BJitiChaGcxV7Xl8HFcu5P1U/de
nNd80D7dTPxtndUTK0nKLB4J59xJjcXVTFtzVEf0/MbgLnj7WULZWFv368cWys3uCENC3apvo
LbeFPmI+LgkDpK27qYQN08LOTuHYNzAhXlHIKbiRVDkgD64XHkl9qTZJnPJf2OvdaSU2+DKjd
1TKb7hi
Envelope-To: <meine@email.de>
X-UI-Filterresults: notjunk:1;V01:K0:Ui3UhvxMcvc=:npW/4HifLGbtChWebOjBspTS4S
rfn016m1WZ+OgDbXLfDcDmB926qQoAiL8zKu9eqWEUhhfO9Cb5/XRqdCCa+LfFlaOtD4RXlJO
oQ3hYapy9/d9cu6ZdhBeD0WbIVKzYhGnaNB12h8NBva3EVndkMRvtF0Aip7NZFtoVSfI5eIJG
oLaaQOl1SBAj1u6OtcFSM0LSriUfuTyAf7pOy8uWdIjbVGH+0AYHhEiWihi8NeQt+gcjoQELc
vc1UZ6csaodCA8Bnl73c24t/j/63Y7cpN0ww8SF+rwnwunn8VYyzBo5DPlGVqzuJJ4MQ/wCcD
CcROFZSoIN+tdLwcFYglkBD06V7kmhWuqNvcwgEtFuP3rzS7L+75gl2gRRUXdVXxuqsOgEq4X
D1S+OKnRXXaGcSPd3/hq+yQipVZJqtEQziPAOoyOducDxiQYkH1lxqsqp0WIiNs+DSdEgg9Vs
3OqhJIfwLZVJ3VjMEgj5tDl40umEyfp1b0OkkDdWYB0NiWpVNMGHJ2pcq1EChTbMl5tvBQCas
QrUCU/gPb6xYENHtfiajD9ksyebPBkL1aXLjiSqeR36kVetZcUAYgJ4KfKsPQsGW/T41HWhgr
Q+wEtaOD0pHr8jrTr6TScuGewOucmQlIYa12aQhdIjMQuhShFkw18J5iucg6+OdUsXb08s+r6
s18sG8A0F1hrhkgsqDaic9JScfJDhWR4r2A5r+PjcSle+gFU8P6fyHnfeyH1uvEDOIad9RO0I
Sl+1/00nVX/NEX9TLmALTvo4cpm1JieZTGsBq5MJ7EcW0CdQ84MA8dSdsefWSYkPGahcphdk0
sl7VYIaIh+4oR+Sl79wEvxsZjt7JVYL7CNKVrP+56juPBwa+oWLDLIvD2TOM3JfUw22/K7HVQ
CkMQcY4KEC3k6YgQM6oUR7PHtPAq9XTFrCokHbeh4pws0YK+Bm3kTJy0oKcnj698GkGOikoo9
Gw1RfAKJYlyO85j6DxMwZjIBCBBrb8WS+kPnlQ57y9qQXfzKjZ+vXLVCzeFHW0eiHizY0rNRQ
+x/3prSPCTdF3LK7Kzgw+sEVCEhehZiRxQzXlPySKoGcGaI/AEYINgCMI0HH2UjLqr4Eowj5q
rAjOHN63CPCu16zAYNTQKR/M4Wdr483MVvSuzHmVbMEdjxgC5w59Uv76I7DkT8JNLgWcLWvCm
cR/ADsu5Tm0aCb1xg22nH5vYlyvy9NVo4S/BJ5OqQJim6rXH4B92Z5dphLZbxn/lpHyTFwPly
ywNVdkHrLqP3NEdJBN2/gngkj9+wFFIiUYLEiZ0+moU3VB1mZv9++ko9KLvrJlubM4sAhJIiF
AsQVr/8lQ6Ag90R81G8Isxkep3EyL+nVaGM9zhoP2uvJTf8SUDb3tUZFhNIAN11PIyf7EGgnJ
Q8TXWNaMJw4DXqvS90r2cAO7MhMR/FzY9hJZy7rrN1sqoe2SLjH5ULTGPLdRDaMy9V82ltFZI
d4ofRSKkdP3kNT8RSPhKdvo6eWQwao348vD5b9iK6uyTAsmYVn+um164SSvIOtUpQM1KYegQG
IL6cdrNMlMtWeUmXdHVY=
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">'
</head>
<body>
<h1>Hallo</h1>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</body>
</html>
mitten in der Email stehen.
Hat einer eine Idee?