You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Mail Checker
**Mail Checker** je napredna i potpuno funkcionalna Python aplikacija koja radi unutar sistemske trake (*System Tray*) i služi za praćenje nepročitanih poruka s više IMAP računa istovremeno.
Aplikacija podržava:
- zvučne obavijesti
- glasovna upozorenja na hrvatskom jeziku (TTS)
- pregled i čitanje zadnjih poruka kroz tabove
- sigurno pohranjivanje lozinki
> **Napomena o kompatibilnosti:**
> Ova aplikacija razvijena je isključivo za **Linux** sustave te je službeno testirana i optimizirana na **Debian 13 (Trixie)** operativnom sustavu.
---
# ✨ Funkcionalnosti
- **Praćenje više računa**
Sinkronizirana provjera više e-mail računa s različitim IMAP poslužiteljima.
- **Fleksibilni intervali**
Svaki račun može imati vlastiti interval provjere (minimalno 10 sekundi).
- **Napredne obavijesti**
- Desktop notifikacije preko sistemskog daemon-a (`notify-send`)
- Prilagođene zvučne datoteke (`.wav`, `.mp3`) za svaki račun zasebno
- **Glasovni alert (TTS)**:
Izgovaranje broja nepročitanih poruka na hrvatskom jeziku uz ispravnu gramatičku deklinaciju:
- `1 poruku`
- `2 poruke`
- `5 poruka`
Podržan je izbor muškog ili ženskog glasa.
- **Pregled poruka**
Sučelje s tabovima unutar kojeg možete pročitati tekstualni sadržaj zadnjih poruka ili ih trajno obrisati (prebaciti u *Trash*).
- **Visoka sigurnost**
Integracija sa sistemskim privjeskom ključeva (`keyring`) lozinke se ne zapisuju u plain-text obliku unutar konfiguracijske datoteke ako je privjesak dostupan.
- **Otpornost na mrežne greške**
Implementiran je *exponential backoff* mehanizam za ponovne pokušaje u slučaju gubitka mrežne veze.
---
# 🛠️ Potpuni zahtjevi i instalacija (Debian 13)
Kako bi aplikacija radila bez pogrešaka i upozorenja u terminalu, potrebno je instalirati sve sistemske biblioteke i Python pakete.
## 1. Instalacija sistemskih paketa (APT)
Otvorite terminal i pokrenite sljedeću naredbu:
```bash
sudo apt update
sudo apt install python3-tk python3-pil python3-pystray python3-keyring \
espeak-ng mpv \
libayatana-appindicator3-1 \
libayatana-appindicator-glib1 \
libnotify-bin \
gir1.2-gtop-2.0 \
dbus-x11
```
### Pojašnjenje paketa
- `python3-tk`
Omogućuje rad Tkinter grafičkog sučelja u Pythonu.
- `python3-pil`
Pillow biblioteka za generiranje i manipulaciju ikona u sistemskoj traci.
- `python3-pystray`
Omogućuje kreiranje i upravljanje ikonom u sistemskoj traci.
- `python3-keyring`
Omogućuje Pythonu komunikaciju sa sustavnim privjeskom ključeva za sigurno spremanje lozinki.
- `espeak-ng`
TTS pokretač koji generira glasovne obavijesti na hrvatskom jeziku.
- `mpv`
Media player koji aplikacija koristi za reprodukciju `.mp3` i `.wav` datoteka bez blokiranja sučelja.
- `libayatana-appindicator3-1`
- `libayatana-appindicator-glib1`
Sustavne biblioteke ključne za ispravan prikaz ikone u sistemskoj traci (*AppIndicator*).
- `libnotify-bin`
Omogućuje slanje desktop obavijesti putem naredbe `notify-send`.
- `dbus-x11`
Osigurava stabilnu komunikaciju aplikacije sa sistemskim servisima.
---
# 🚀 Pokretanje aplikacije
Aplikaciju pokrećete iz njezinog direktorija standardnom naredbom:
```bash
python3 mail_checker.py
```
---
# ⚙️ Korisničko sučelje (Postavke i pregled)
## Upravljanje računima
Prozor za postavke podijeljen je na dva dijela:
### Lijeva strana
- Popis registriranih računa
- Horizontalni klizač za dugačke adrese
- Gumbi `▲` / `▼` za promjenu redoslijeda provjere
### Desna strana
Formular za unos detalja računa:
- Nadimak
- IMAP server
- Email
- Lozinka
- Interval provjere
- Zvučna datoteka
- TTS postavke
- Opcije pregleda
---
## Pregled poruka
Klikom na **Pregled poruka** unutar izbornika sistemske trake otvara se prozor koji dohvaća najnovije poruke za sve račune koji imaju uključenu opciju prikaza.
Dvostrukim klikom na poruku otvara se prozor za čitanje tekstualnog sadržaja s opcijom izravnog brisanja poruke sa servera.
---
# 📁 Struktura datoteka
Aplikacija koristi i stvara sljedeće datoteke:
- `mail_checker.py`
Glavni izvorni kod aplikacije.
- `config.json`
Konfiguracijska datoteka u kojoj se čuvaju postavke računa.
- `mail_checker.log`
Detaljan dnevnik rada i pogrešaka (*log file*).
---
# 🔒 Sigurnost lozinki (Keyring Helper)
Aplikacija automatski prepoznaje podržava li vaše radno okruženje privjesak ključeva (*GNOME Keyring* ili *KDE Wallet*).
- **Ako je privjesak dostupan**
- Polje `"MAIL_PASSWORD"` unutar `config.json` ostat će prazno (`""`)
- Lozinka će biti sigurno pohranjena pod servisom `MailChecker`
- **Ako privjesak nije dostupan**
- Aplikacija zapisuje upozorenje u log
- Lozinka se sprema lokalno u `config.json` kako bi aplikacija mogla nastaviti raditi
---
# 🐛 Rješavanje problema i dnevnik rada (Logging)
Sve akcije, promjene stanja, uspješni dohvat poruka te IMAP ili mrežne pogreške zapisuju se u datoteku:
```bash
mail_checker.log
```
Praćenje loga u stvarnom vremenu:
```bash
tail -f mail_checker.log
```

Powered by TurnKey Linux.