View Full Version : [PROGETTO] Neive Mail Client - C# and .NET Project
Ciao a tutti ragazzi,
ho deciso, proprio quest'oggi in un attimo di follia lavorativa, di 'provare' a scrivere un Client Email per Windows che sia una via di 'mezzo' tra Thunderbird e Outlook Express.
Perché?
Trovo Outlook Express estremamente pesante e Thunderbird poco integrato in Windows (salvo con l'aggiunta di n^2 estensioni (calendar, trybar, ecc)).
Quindi?
Quindi ho pensato: 'A me serve un Client leggero, che stia nella TrayBar, si connetta in POP3 e IMAP a N account differenti, mi gestisca la posta, promemoria, rubrica indirizzi ed eventuale calendario.
Che hai deciso?
Ho deciso di scrivermene uno o, meglio, provare: provare perché non ho tempo, anzi veramente poco; provare perché sto finendo un altro progetto molto grosso. Provare perché è un pò che non tocco C# (salvo per un lavoretto qui in redazione in HW).
L'idea è di scriverlo in C#, basato sul .NET 3.5 e sfruttare le librerie della TCPClient integrate nel .NET.
Non cerco espressamente collaboratori, ma idee e consigli su come realizzare una semplice ma valida applicazione per la gestione della posta.
Il resto lo implemento io.
Ho deciso di usare le Windows Form perché sulle WPF sono tremendamente a secco di informazioni e documentazione (e tempo per aggiornarmi, sempre li il problema).
CHIEDO cortesemente ai moderatori di poter lasciare in evidenza la discussione, in caso contrario non ha importanza, sono sicuro che l'aggiorneremo noi piano piano.
Vi terrò aggiornati sullo sviluppo, intanto, se volete, ogni consiglio/critica è ben accetta.
Mattyfog
17-06-2010, 22:23
Anche io avevo avuto questa idea!
:)
Anche io avevo avuto questa idea!
:)
Mi fa piacere, ciò significa che non sono l'unico 'malato' di mente. :D
Ryuzaki_Eru
17-06-2010, 22:27
Mi aggiungo, solo che io volevo realizzarla in Python :D Non conosco(ancora per poco spero) C#.
Mi aggiungo, solo che io volevo realizzarla in Python :D Non conosco(ancora per poco spero) C#.
Avrai una lancia spezzata a favore da parte di Cesare :O
Mattyfog
17-06-2010, 22:35
Io sono per C#.
Ma è una cosa molto complicata? Ma soprattutto si riesce a dividersi il lavoro? Comunque neppure io so se ho il tempo. :D
Io sono per C#.
Ma è una cosa molto complicata? Ma soprattutto si riesce a dividersi il lavoro? Comunque neppure io so se ho il tempo. :D
Niente è semplice e niente è complicato.
Tutto è in relazione alle tue conoscenze e al tempo che hai da dedicarci.
Inoltre una buona dose di passione e forza di volontà fronteggiano i momenti peggiori.
C'è tanto lavoro, sciuramente.
Sto stendendo una RoadMap base di come deve evolversi il progetto, di come dovrà essere la GUI (cosa fondamentale per il successo del Software) e di come dovrà essere sviluppato tutto quanto. Ci vuole tempo, un pò, ma sicuramente qualcosa di buono uscirò.
Sto facendo dei testi con la TCPClient di .NET e riesco già a collegarmi a Gmail e scaricare i dati in POP senza problemi; sarà interessante integrare IMAP e SMTP e tutta la cifratura SSL.
:)
Ryuzaki_Eru
17-06-2010, 22:46
Avrai una lancia spezzata a favore da parte di Cesare :O
Conosco già Cesare :D
Mattyfog
17-06-2010, 22:47
Emm, mi sa che forse è troppo complicato per me :D
Emm, mi sa che forse è troppo complicato per me :D
Nulla è complicato dai :D
PS. per Cesare, chi non lo conosce?
Mattyfog
17-06-2010, 22:53
Che? Cesare?
Ryuzaki_Eru
17-06-2010, 23:03
PS. per Cesare, chi non lo conosce?
Che? Cesare?
Lui? :D
Mattyfog
17-06-2010, 23:10
Ahhh quindi Cesare non conosce Cesare...
Meno male non sono l'unico!
tomminno
17-06-2010, 23:19
Sto facendo dei testi con la TCPClient di .NET e riesco già a collegarmi a Gmail e scaricare i dati in POP senza problemi; sarà interessante integrare IMAP e SMTP e tutta la cifratura SSL.
:)
Ti faccio tanti tanti auguri nel momento in cui dovrai andare a lavorare con gli allegati.
A lavoro tempo fa feci un client POP3 in C# che doveva servire per recuperare immagini e/o filmati inviati in allegato. Il client pop3 in sè è una mezza bischerata (saranno si e no 200 righe di codice per i principali comandi), il parser dell'rfc822 è invece molto ma molto più rognoso, soprattutto perchè il contenuto ti può arrivare in 10000 modi differenti e tutti validi.
Ti faccio tanti tanti auguri nel momento in cui dovrai andare a lavorare con gli allegati.
A lavoro tempo fa feci un client POP3 in C# che doveva servire per recuperare immagini e/o filmati inviati in allegato. Il client pop3 in sè è una mezza bischerata (saranno si e no 200 righe di codice per i principali comandi), il parser dell'rfc822 è invece molto ma molto più rognoso, soprattutto perchè il contenuto ti può arrivare in 10000 modi differenti e tutti validi.
Ti ringrazio.
Ci avevo già pensato e mi sono fatto una lista esatta dove sbatterò la testa esattamente. Per ora sto facendo dei giochetti con Gmail in connessione POP3 e vanno tutti benissimo (a parte qualche litigata con l'SSL lato Remoto ma me lo aspettavo, superata senza problemi).
Poi vedrò quanto 'G' mi permetta di 'giocare' con i suoi prodotti (ovvero estrarmi lista rubrica, calendario, ecc.
Notte a tuttti :cool:
caro dojolab, intanto pollici al cielo per l'iniziativa. Non vorrei mai fare quello che suggerisce tecnologie esotiche a metà progetto, però ho avuto (anzi, ho) modo di usare i moduli python per gestire mail: mime, allegati, c**zi e mazzi e sono rimasto stupito dalla semplicità di manipolazione. Non ho mai capito se questi moduli si possono esaminare a livello di codice sorgente (credo di sì, essendo scritti in C e open source), in ogni caso potresti trovare info molto interessanti.
O passare a python :oink:
caro dojolab, intanto pollici al cielo per l'iniziativa. Non vorrei mai fare quello che suggerisce tecnologie esotiche a metà progetto, però ho avuto (anzi, ho) modo di usare i moduli python per gestire mail: mime, allegati, c**zi e mazzi e sono rimasto stupito dalla semplicità di manipolazione. Non ho mai capito se questi moduli si possono esaminare a livello di codice sorgente (credo di sì, essendo scritti in C e open source), in ogni caso potresti trovare info molto interessanti.
O passare a python :oink:
Eh eh, sei già il secondo che mi parla di Python per questo progetto.
Rimango su C# (non perché disprezzo Python o simili) ma perché lo conosco decisamente meglio e non devo 'perdere', o meglio, investire tempo nella documentazione.
Non è detto che in futuro passerò a Python e riscriverò il progetto.
Comunuqe anche per C# ti assicuro che ci sono di quelle librerie fantastiche, soprattutto nel .NET 4. Peccato io userò il 3.5 :D .
Ryuzaki_Eru
18-06-2010, 07:17
Cesare!
Quindi Cesare non conosce Cesare?! :eek: Io mi riferivo a Mattyfog :D
però ho avuto (anzi, ho) modo di usare i moduli python per gestire mail: mime, allegati, c**zi e mazzi e sono rimasto stupito dalla semplicità di manipolazione.
Python rulez :D
Non ho mai capito se questi moduli si possono esaminare a livello di codice sorgente (credo di sì, essendo scritti in C e open source), in ogni caso potresti trovare info molto interessanti.
Ovviamente si possono studiare i sorgenti.
O passare a python
Ha già un appuntamento con me :rotfl:
Eh eh, sei già il secondo che mi parla di Python per questo progetto.
Buongiorno anche a te :D
Comunuqe anche per C# ti assicuro che ci sono di quelle librerie fantastiche, soprattutto nel .NET 4. Peccato io userò il 3.5
Appena mi libero di questo esame C# a manetta :D Per l'SSL ti è bastata la libreria TCPClient o ne hai dovuto usare un'altra? Cosi inizio a farmi un'idea sul mondo .NET :asd:
cdimauro
18-06-2010, 08:21
Avrai una lancia spezzata a favore da parte di Cesare :O
"Chi mi ha chiamato? Sono stato evocato..." - KingStar
http://www.yattamanga.it/uploads/anime/163/calendarman157c9iyloSDl.jpg
caro dojolab, intanto pollici al cielo per l'iniziativa. Non vorrei mai fare quello che suggerisce tecnologie esotiche a metà progetto, però ho avuto (anzi, ho) modo di usare i moduli python per gestire mail: mime, allegati, c**zi e mazzi e sono rimasto stupito dalla semplicità di manipolazione. Non ho mai capito se questi moduli si possono esaminare a livello di codice sorgente (credo di sì, essendo scritti in C e open source), in ogni caso potresti trovare info molto interessanti.
O passare a python :oink:
Concordo. C'è già la libreria bella e pronta che fa anche il caffé, e con Python i tempi di sviluppo e manutenzione del codice dovrebbero essere ridotti (oltre a essere un linguaggio molto facilmente assimilabile anche da chi non l'ha mai visto prima).
@Cesare per Python concordo, la libreria imaplib è sensazionale :D
Per SSL ho dovuto usare SSLStream di C# è una libreria integrata in .NET che fa parte del namespace System.NET.Security mi pare.
cdimauro
18-06-2010, 08:46
Non è solo imaplib, ma ci sono diverse librerie legate proprio ai "dati internet" (http://docs.python.org/library/netdata.html), con tanto di esempi di utilizzo...
Non è solo imaplib, ma ci sono diverse librerie legate proprio ai "dati internet" (http://docs.python.org/library/netdata.html), con tanto di esempi di utilizzo...
Si Cesare, ho avuto modo di vedere.
Ma io cercavo qualcosa inerete all'IMAP per Gmail e ho trovato, nella Docs di Python, questa libreria. :)
Ryuzaki_Eru
18-06-2010, 09:46
E ne troverai tante altre. Chiama ora e le spese di spedizione sono gratis :asd:
Ho appena realizzato la versione 0.1, features?
Avvio del programma LOL
Connessione POP con supporto SSL a Gmail
Response da parte del Server di Gmail
Prossimo passaggio della 0.1.1 sarà:
Lettura delle E-mail e download di esse
Connessione anche non in SSL (se il server lo permette)
Gestione degli errori (Eccezioni?)
Integrazione di un mini database per la gestione degli utenti
Già da questa versione posso pensare di distribuire il sorgente... e l'eseguibile.
Per il momento non posso farlo perché sto lavorando con i file di configurazione (.settings) interni al progetto e quindi sarebbe impossibile per l'utente 'modificarli'.
Ryuzaki_Eru
18-06-2010, 12:51
Bene, attendo i sorgenti.
Mattyfog
18-06-2010, 12:51
We ma te puoi fare già tutto da solo!!
Raga ma per curiosità, in un programma di tipo desktop come si può permettere l'espansione tramite plugin? Cioè quale deve essere la struttura per far si che si possano creare plugin?
Ryuzaki_Eru
18-06-2010, 12:57
Bella domanda.
Ci sono vari modi per implementare un'applicazione che supporta i plugin. Devi decidere quanto il plugin deve conoscere del core del programma(meno conosce meglio è), come lo vuoi integrare(ad esempio in quale menu farlo andare, come "collegare" le funzionalità, come integrare il plugin nella GUI ecc) e altro. Adesso ho poco tempo, ma nel frattempo puoi leggerti questo(anche se riguarda Python, ma se astrai un pò puoi farti un'idea):
http://lucumr.pocoo.org/2006/7/3/python-plugin-system
http://wehart.blogspot.com/2009/01/python-plugin-frameworks.html
AGGIORNAMENTO:
Confermo connessione/lettura email in POP3 su Gmail.
Ora devo vedere come si comporta con eventuali allegati, anche se è una feature che penso di introdurre moooolto più avanti.
:D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.