Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Aradia - Settembre 06, 2014, 07:34:55 pm

Titolo: Programma con invio mail
Inserito da: Aradia - Settembre 06, 2014, 07:34:55 pm
Buonasera
Sono dubbiosa e chiedo il vostro parere essendo neofita
Vorrei creare una mascherina con lazzarus
Un form con un paio di box per inserire delle info
Il tutto viene inviato via mail e poi un programma sulla mail che prende i dati li confronta nel db e il risultato lo rinvia via mail ad una mail fissa

Esempio
Form
Nome
Cognome
Citta

Invia mail

Nel db ci saranno tot informazioni "nome cognome citta=xxx"
La mail generata sara
Nome cognome citta abbisogna di x

Si potra' fare?
Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 06, 2014, 08:10:21 pm
Aradia.
Tutto si può fare con i computer, anche il caffè (dotandolo della scheda adatta ;) )

Visto che stai imparando, ti consiglio di prendere confidenza con l'ambiente di sviluppo e il linguaggio.
Poi con i database.
In fine con la rete.

Stilgar
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 07, 2014, 05:31:37 pm
Eheh infatti sto curiosando
Esiste una guida completa in ita?

Ho visto in how to il programma per invio mail
Sapete il comando per inviare quello che viene scritto in edit?
Titolo: Re:Programma con invio mail
Inserito da: xinyiman - Settembre 07, 2014, 05:42:48 pm
Segui il tutorial e al posto di

     app.AddRowCorpoMail('PIPPO');
     app.AddRowCorpoMail('PLUTO2');

metti

     app.AddRowCorpoMail(Edit1.Text);

Ipotizzando che la edit si chiami edit1
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 07, 2014, 08:07:08 pm
funziona perfettamente!!!
inizio anche a divertirmi
manuali in ita niente vero?

ok ora il prossimo passo cosa posso usare per creare un programmino che legga le mail in arrivo e le confronti con i dati di un db?
Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 08, 2014, 10:30:11 am
Ci sono due strade.
1)  il programma interagisca con il server di posta.
2) il programma inizia a controllare la posta scaricata dal client di posta che usi.

Quale avevi in mente?

Stilgar
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 08, 2014, 05:32:57 pm
Se esiste una soluzione migliore consigliate pure

pensavo ad un programma che in automatico ogni 5 minuti andasse a controllare la posta in arrivo e ogni volta che arriva una mail confrontasse i dati contenuti con quelli del db

i risultati del confronto vanno inviati via mail ad una mail fissa
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 08, 2014, 05:38:10 pm
L'idea è buona: collegarsi col server (POP3 o IMAP ?) ad intervalli di tempo, scaricare le email che interessano e fare il confronto.

Sai già come confrontare i dati della mail con quelli contenuti nel db (= in che formato sono i dati nella mail)?
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 08, 2014, 05:45:46 pm
Calcolando che e' ancora tutto da costruire abbiamo varie scelte

i dati nella mail arrivano tramite lazarus in testo semplice

devp solo controllare il formato usato dalla mail ma posso utilizzare la mail che piu' mi aggrada per l'arrivo e l invio
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 08, 2014, 06:19:42 pm
non metterei i dati direttamente nel corpo della mail ma farei un allegato
in questo allegato ci puoi mettere un file .CSV o addirittura un .XML
se metti un .XML (che si ottiene semplicemente con TDataSet.SaveToFile), nel momento del controllo puoi fare un LoadFromFile
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 08, 2014, 07:39:00 pm
Io ho usato il metodo messo in how to per fare la maschera per l'invio mail
posso fare in modo che invece che la mail mandi un file?
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 08, 2014, 08:08:34 pm
posso fare in modo che invece che la mail mandi un file?

Facciamo un po' di chiarezza ;):
se vuoi mandare solo un file allora hai bisogno di un server ftp (molto meglio che usare le mail, ma se tu avessi avuto a disposizione un server ftp ce lo avresti detto subito :) )
se vuoi sfruttare le mail, puoi mandare del testo (il corpo della mail) e nessuno, uno o più file allegati

Dovendo usare la mail, ti ho consigliato di usare l'allegato perché è molto meglio processare un file che il testo contenuto del corpo.

Riguardo all'how to che segui, ce ne sono 2: immagino tu non ti riferisca a quello che usa Indy ma al seguente: http://www.lazaruspascal.it/index.php?page=8 (http://www.lazaruspascal.it/index.php?page=8)

Se è questo puoi sfruttare il metodo AddMyAllegatoList per inserire un allegato, ad esempio:
Codice: [Seleziona]
app.AddMyAllegatoList('C:\percorso\al\file\allegato\controlli.txt');

Fatto questo quando spedirai la mail l'avrai spedita con un file allegato.
Quando dovrai scaricare la mail dovrai salvare quell'allegato in una cartella temporanea e poi potrai processarlo.
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 08, 2014, 09:09:21 pm
no niente ftp XD ho giusto una connessione base dal pc dove mettero' la maschera di inserimento dati

si sto usando proprio quello di how to
quindi inserisco il comando per l'allegato...pero' non ho un allegato vero e proprio, ho solo cio' che inserisco nella maschera di lazarus
quindi devo prima fare in modo che tutti i dati inseriti creino l'allegato,giusto?

niente manuale in ita ç_ç la mamma me lo diceva che dovevo studiare l'inglese XD
Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 08, 2014, 10:37:43 pm
Nomore, Aradia
Secondo me c'è da fare un ulteriore passo indietro.
Serve a gestire una news letter questo progetto? Probabolimente sourceforge e pommo possono essere la soluzione (low cost).
Serve a fare altro?

Ho le idee un pochino confuse :D

Stilgar
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 08, 2014, 11:03:44 pm
Ok provo a spiegarmi, sono sempre un po' confusionaria

Cosa vorrei fare:

Una maschera dove inserire delle informazioni

es.
nome
citta'
hobby

invi il tutto ad una mail
dalla mail il programma confronta i dati inviati con quelli inseriti in un db
mettiamo che nel db ci sono delle persone con nome citta e hobby
quando trova le tre info uguali invia il risultato via mail
con una cosa del tipo  "nome citta e hobby ha trovato 4 risultati" ed elenca i risultati
se fosse possibile servirebbe anche che oltre alla mail finale venissero inviate delle mail ai risultati(ovviamente inserendo una mail di riferimento dentro il db) di allerta
"nome citta e hobby vi sono affini"

sono riuscita a spiegarmi?
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 09, 2014, 09:23:30 am
il database già c'è? se si, che db è?
Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 09, 2014, 09:47:59 am
Citazione
sono riuscita a spiegarmi?
Mettiamola così.
Tu ti sei spiegata benissimo, sono io non ci ho capito un'ostia. :D
Vedo che Nomore è lanciatissimo. Lascio il campo in buon ordine a lui. :D

Stilgar
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 09, 2014, 10:13:01 am
No il db ancora non c'e'
e' ancora tutto molto "campato in aria"
per ora c'e' solo la larva dell'idea quindi si puo' decidere che modus usare

Stilgar ;) a volte sono io che mi spiego magnificamente male XD
Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 09, 2014, 10:31:28 am
Partiamo da zero.
Come recitava un film d'animazione:
"trova una necessità e soddisfala".
E me manca la necessità.
A cosa serve il "marchingegno"?

Stilgar
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 09, 2014, 01:07:12 pm
Oook
serve ad automatizzare una cosa che per ora si fa manualmente cosi da risparmiare un tot di tempo

io invio via mail dei dati a te
tu hai un db con una lista di possibili coincidenze
tutte le coincidenze me le invii via mail
e nel frattempo invii alle coincidenze il fatto che coincidono con me

tecnicamente "e' tutto qui"
per me e' un po' come l'uovo di colombo essendo molto niubba...e priva di manuale in ita ghgh

per ora sono riuscita grazie all how to a fare il primo passo ovvero inviare i dati da mascherina
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 09, 2014, 02:52:29 pm
direi che come prossimo passo ti tocca decidere che strada prendere col db

se i dati non sono molti puoi rimanere sul facile (esempio file di testo) altrimenti scegli un db tipo sqllite ed inizia a stabilire di quali tabelle hai bisogno

poi il programmino per la manutenzione dei dati

poi - per ultimo - pensi al confronto dei dati che ti arrivano per mail
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 09, 2014, 03:57:51 pm
direi che le il db devo farlo di 1 tabella con 4 celle
nome-localita'-servizio-mail

per il programma della manutenzione e del confronto posso restare su lazarus?
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 09, 2014, 04:13:04 pm
direi che le il db devo farlo di 1 tabella con 4 celle
nome-localita'-servizio-mail

dovresti individuare un campo che farà da chiave primaria, una campo che non permetterà casi ambigui dovuti a record doppi.
Nel tuo caso infatti potresti avere ben più di un caso di omonimia, come fai a distinguere tra?
Rossi Paolo;Via dei Mille nr. 999;Servizio01;rossi.paolo@aaa.it
Rossi Paolo;Piazza Mazzini nr 4;Servizio42;rossi.paolo@bbb.it
Rossi Paolo;Parco della Vittoria nr 3;Servizio23;rossi.paolo@ccc.it

Orientativamente, quanti nominativi ci andranno? 100, 1000, 10.000, 1.000.000.000?


per il programma della manutenzione e del confronto posso restare su lazarus?

ovvio :)
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 09, 2014, 04:27:19 pm
Direi che la soluzione e' utilizzare come confronto solo citta' e servizio
gli altri dati non sono in db ma devono essere inseriti nella risposta

direi che per iniziare ci saranno un centianio di nominativi
interni al db

ok restando su lazarus devo necessariamente trovare dei documenti in ita...per imparare l'inglese mi ci vorrebbero millenni ghghg
sapete dove posso guardare?
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 09, 2014, 06:14:58 pm
direi che per iniziare ci saranno un centianio di nominativi
interni al db

ok restando su lazarus devo necessariamente trovare dei documenti in ita...per imparare l'inglese mi ci vorrebbero millenni ghghg
sapete dove posso guardare?

anche se dovessero raddoppiare ti consiglio di fare con un file di testo

per la documentazione in italiano puoi iniziare da qua: http://wiki.freepascal.org/Lazarus_Documentation/it (http://wiki.freepascal.org/Lazarus_Documentation/it)
Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 09, 2014, 06:32:44 pm
hihi
La lista è in italiano :D
Non tutto è tradotto.
Ma con google translate puoi avere un'idea di massima di quello che c'è scritto.

Stilgar
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 09, 2014, 06:55:57 pm
ok dubbio ampletico
se io il db e il processo di confronto lo faccio direttamente nel programma "mascherina"
viene piu' facile?

e quanto va a pesarmi una possibile installazione con un db se dovessi pensare di inserirci un milione di record?
Titolo: Re:Programma con invio mail
Inserito da: nomorelogic - Settembre 09, 2014, 07:11:30 pm
peso = sizeof(tuo_programma) + sizeof(binari_database_server) +  (1.000.000 * sizeof(record))

per il dubbio amletico la risposta è: dipende...
dalle tue capacità, da quanto sarà grande il programma finale, dalle risorse del sistema

Edit:
resta il fatto che il processo di confronto non ha bisogno di una interfaccia grafica e questo perché sia il più efficiente possibile
quindi andrebbe fatto così :)
Titolo: Re:Programma con invio mail
Inserito da: Aradia - Settembre 09, 2014, 07:18:42 pm
ok stavolta sono io che sono tanarda

le mie capacita'....sono decisamente moderate...forse quasi nulle XD
e' meglio fare il db direttamente allegato alla mascherina quindi?

di base il programma non dovrebbe essere molto grande poiche deve solo confrontare le informazioni messe e inviare il risultato via mail

Titolo: Re:Programma con invio mail
Inserito da: Stilgar - Settembre 09, 2014, 07:21:18 pm
Dico la mia.
Il confronto e il controllo mail, ne farei un servizio/demone (dipende dal sistema operativo target)
Per l'UI si lavora sempre con il DB quindi possono essere tranquillamente due entità separate.

Stilgar