Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.112
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
Python-3.10.14 /
Doc /
includes /
Delete
Unzip
Name
Size
Permission
Date
Action
sqlite3
[ DIR ]
drwxr-xr-x
2024-03-19 22:46
custom.c
987
B
-rw-r--r--
2024-03-19 22:46
custom2.c
3.38
KB
-rw-r--r--
2024-03-19 22:46
custom3.c
4.52
KB
-rw-r--r--
2024-03-19 22:46
custom4.c
4.81
KB
-rw-r--r--
2024-03-19 22:46
dbpickle.py
2.8
KB
-rw-r--r--
2024-03-19 22:46
email-alternative.py
1.68
KB
-rw-r--r--
2024-03-19 22:46
email-dir.py
3
KB
-rw-r--r--
2024-03-19 22:46
email-headers.py
950
B
-rw-r--r--
2024-03-19 22:46
email-mime.py
930
B
-rw-r--r--
2024-03-19 22:46
email-read-alternative.py
2.84
KB
-rw-r--r--
2024-03-19 22:46
email-simple.py
585
B
-rw-r--r--
2024-03-19 22:46
email-unpack.py
1.55
KB
-rw-r--r--
2024-03-19 22:46
minidom-example.py
1.54
KB
-rw-r--r--
2024-03-19 22:46
mp_newtype.py
1.89
KB
-rw-r--r--
2024-03-19 22:46
mp_pool.py
3.8
KB
-rw-r--r--
2024-03-19 22:46
mp_workers.py
1.55
KB
-rw-r--r--
2024-03-19 22:46
run-func.c
1.94
KB
-rw-r--r--
2024-03-19 22:46
setup.py
329
B
-rw-r--r--
2024-03-19 22:46
sublist.c
1.55
KB
-rw-r--r--
2024-03-19 22:46
test.py
3.56
KB
-rw-r--r--
2024-03-19 22:46
turtle-star.py
155
B
-rw-r--r--
2024-03-19 22:46
typestruct.h
2.42
KB
-rw-r--r--
2024-03-19 22:46
tzinfo_examples.py
5.72
KB
-rw-r--r--
2024-03-19 22:46
Save
Rename
import os import sys import tempfile import mimetypes import webbrowser # Import the email modules we'll need from email import policy from email.parser import BytesParser def magic_html_parser(html_text, partfiles): """Return safety-sanitized html linked to partfiles. Rewrite the href="cid:...." attributes to point to the filenames in partfiles. Though not trivial, this should be possible using html.parser. """ raise NotImplementedError("Add the magic needed") # In a real program you'd get the filename from the arguments. with open('outgoing.msg', 'rb') as fp: msg = BytesParser(policy=policy.default).parse(fp) # Now the header items can be accessed as a dictionary, and any non-ASCII will # be converted to unicode: print('To:', msg['to']) print('From:', msg['from']) print('Subject:', msg['subject']) # If we want to print a preview of the message content, we can extract whatever # the least formatted payload is and print the first three lines. Of course, # if the message has no plain text part printing the first three lines of html # is probably useless, but this is just a conceptual example. simplest = msg.get_body(preferencelist=('plain', 'html')) print() print(''.join(simplest.get_content().splitlines(keepends=True)[:3])) ans = input("View full message?") if ans.lower()[0] == 'n': sys.exit() # We can extract the richest alternative in order to display it: richest = msg.get_body() partfiles = {} if richest['content-type'].maintype == 'text': if richest['content-type'].subtype == 'plain': for line in richest.get_content().splitlines(): print(line) sys.exit() elif richest['content-type'].subtype == 'html': body = richest else: print("Don't know how to display {}".format(richest.get_content_type())) sys.exit() elif richest['content-type'].content_type == 'multipart/related': body = richest.get_body(preferencelist=('html')) for part in richest.iter_attachments(): fn = part.get_filename() if fn: extension = os.path.splitext(part.get_filename())[1] else: extension = mimetypes.guess_extension(part.get_content_type()) with tempfile.NamedTemporaryFile(suffix=extension, delete=False) as f: f.write(part.get_content()) # again strip the <> to go from email form of cid to html form. partfiles[part['content-id'][1:-1]] = f.name else: print("Don't know how to display {}".format(richest.get_content_type())) sys.exit() with tempfile.NamedTemporaryFile(mode='w', delete=False) as f: f.write(magic_html_parser(body.get_content(), partfiles)) webbrowser.open(f.name) os.remove(f.name) for fn in partfiles.values(): os.remove(fn) # Of course, there are lots of email messages that could break this simple # minded program, but it will handle the most common ones.