Visą gyvenimą turėjau programą kuri praneša apie naujus laiškus, vienu metu naudojau vieną, kitu kitą… Viskas priklausė nuo naudojamos darbastalio aplinkos, nuo skydelio ar dar nuo kažko. Kadangi praktiškai viską stengiuosi naudoti kuo labiau nepriklausomą nuo darbastalio aplinkos ar šiaip nuo ko nors tai nusprendžiau ir šią programą pakeisti į labiau nepriklausomą. Išbandžiau daug programų, dauguma nebepalaikomos ir nebeveikia taip kaip priklauso arba netiko/nepatiko. Todėl nusprendžiau paieškot kuo paprastesnio varianto, pirmiausiai radau fetchmail, bet ten buvo per daug jau viskas painu ir ne taip paprasta kaip iš pradžių atrodė. Tada atradau python biblioteką „imaplib“, aš pats neprogramuoju (kodą skaityt sugebu, juk aš vertėjas) tai paimiau kelis pavyzdžius iš google ir padariau tai ko man reikėjo
#!/usr/bin/env python
import imaplib
import base64
import os
import time
def check_mail():
obj = imaplib.IMAP4_SSL('imap.gmail.com','993')
obj.login('gymka@archlinux.lt',base64.decodestring(b"c2xhcHRhxb5vZGlz").decode("utf-8"))
obj.select()
obj.search(None,'UnSeen')
obj2 = imaplib.IMAP4_SSL('imap.gmail.com','993')
obj2.login('margevicius.algimantas',base64.decodestring(b"c2xhcHRhxb5vZGlz").decode("utf-8"))
obj2.select()
obj2.search(None,'UnSeen')
obj3 = imaplib.IMAP4_SSL('imap.mail.ru','993')
obj3.login('gymka@mail.ru',base64.decodestring(b"c2xhcHRhxb5vZGlz").decode("utf-8"))
obj3.select()
obj3.search(None,'UnSeen')
box1 = len(obj.search(None, 'UnSeen')[1][0].split())
box2 = len(obj2.search(None, 'UnSeen')[1][0].split())
box3 = len(obj3.search(None, 'UnSeen')[1][0].split())
laisku=box1+box2+box3
if laisku>0:
os.system("mplayer /home/gymka/.config/email/DingDongNewEmail.wav >/dev/null 2>&1")
la="gymka@archlinux.lt: %s" % box1
la2="margevicius.algimantas: %s" % box2
la3="gymka@mail.ru: %s" % box3
cmd="export DISPLAY=:0; notify-send -i \"thunderbird\" \"Paštas:\n"+la+"\n"+la2+"\n"+la3+"\""
os.system(cmd)
while (1==1):
check_mail()
time.sleep(300)
komentarų kaip ir nereik, viskas čia aišku. „c2xhcHRhxb5vZGlz“ yra slaptažodis užkoduotas base64 kodavimu, tai padaryta tam jog kasnors žiūrintis per petį nepamatytų slaptažodžio
Saugumo sumetimais tą scenarijų sukompiliavau:
python
>>> import py_compile
>>> py_compile.compile("mail.py")
gautą .pyc failą pervadinau į maždaug „hasdsa“ ir perkėliau į akis nekrentančią vietą, į akis nekrentančioje auto paleidimo vietoje(LXDE: ~/.config/lxsession/LXDE/autostart) įdėjau to failo paleidimo komandą(@/usr/bin/python /vieta/hasdsa) ir viskas
Scenarijus kas 5min patikrina ar yra naujų laiškų, jei yra praneša garsu ir pranešimo „burbulu“. Mano naudojamas garsas
EDIT:
praktikoj pasirodė jog žinot ar yra naujų laiškų maža, reikia žinot kas per laiškai ir ar verta vargintis ir atvert pašto programą
Atnaujintas kodas: https://github.com/gymka/check_mail




