3 """Mailove rozhrani pro sadu kryptoanalytickych nastroju."""
10 from email.mime.text import MIMEText
11 from time import asctime
14 from ocesavac import ocesat
15 from spolecne import ABECEDA
20 settings = pickle.load(open('./robot_settings'))
21 os.chdir(settings.path)
23 def posli_mail(komu, predmet, text, loguj=None):
25 msg['Subject'] = predmet
26 msg['From'] = settings.name + " <" + settings.mail + ">"
28 smtplib.SMTP('localhost').sendmail(settings.mail, komu, msg.as_string())
30 soubor = open(loguj, 'w')
31 soubor.write(msg.as_string())
35 mail = email.message_from_file(sys.stdin)
36 predmet, _, opsny = mail['Subject'].strip().upper().partition(' ')
37 odesilatel = mail['From']
38 if predmet != settings.subject:
42 posli_mail(odesilatel, "Napoveda", ''.join("Napoveda:\n"
43 "Prikazy robotovi vkladejte do predmetu zpravy "
45 settings.mail, ".\nNa velikosti pismen nezalezi."
46 "\n\nSeznam prikazu:\n"
47 "\"", settings.subject, "\" Analyza zpravy z tela mailu.\n"
48 "\"", settings.subject, " X\" Vynuti analyzu bez mezer.\n"
49 "\"", settings.subject, " M\" Vynuti analyzu s mezerami.\n"
50 "\"", settings.subject, " B\" Vypise cetnost vsech bigramu.\n"
51 "\"", settings.subject, " P\" Vypise vsechny posunuti textu.\n"
52 "\"", settings.subject, " A\" Vypise uplne vsechno co dava "
53 "alespon trochu smysl (nedoporucuji).\n"
54 "\"", settings.subject, " H\" Tato napoveda.\n"
55 "\nVolby (mimo \"H\") je mozno libovolne kombinovat.\n"
56 "Napriklad \"", settings.subject, " LXB\" analyzuje posledni "
57 "prijatou zpravu s vynucenim analyzy bez mezer a navic vypise "
59 "\nS pozdravem\nVas Robot\n"))
63 mail = pickle.load(open('./msg_last.tmp'))
64 m1 = re.match(r".*\<(.*)\>.*", mail['From'])
65 m2 = re.match(r".*\<(.*)\>.*", odesilatel)
75 posli_mail(odesilatel, "Omluva", "Omlouvam se,"
76 " ale Vase zprava uz bohuzel neni na serveru ulozena.\n")
79 if mail.is_multipart():
80 telo = mail.get_payload(0).get_payload().strip()
82 telo = mail.get_payload().strip()
84 if len(ocesat(telo, False)) < 2:
85 posli_mail(odesilatel, "Omluva", "Omlouvam se,"
86 " ale Vase zprava je prilis kratka.\n")
90 # TODO zpracovat zpravu a odeslat vysledek
91 #pridat "\nS pozdravem\nVas Robot"
93 posli_mail(odesilatel,
94 "Analyza Vasi zpravy",
98 f = open('./msg_last.tmp', 'w')
102 f = open('./robot.log', 'a')
103 m = re.match(r".*\<(.*)\>.*", odesilatel)
105 odesilatel2 = m.group(1)
107 odesilatel2 = odesilatel
108 f.write(asctime() + " " + odesilatel2 + " " + opsny + "\n")