Grad (Normal User)
Newbie
Messaggi: 14
Iscritto: 07/11/2012
|
Ciao a tutti, vi pongo il mio problema.
Sono riuscito ad inviare una mail con C# e sono riuscito anche ad allegarci un file. Mi chiedevo però se fosse possibile fare in modo che da GUI l'utente finale possa continuare a caricare allegati ora con il mio codice si riesce ad allegarne SOLO uno e inoltre durante l'invio del messaggio il form si blocca e si rende inutilizzabile perchè? (Dovrei creare un thread apposito?)
Vi posto comunque il mio codice funzionante ma che permette un solo allegato.
email e nomi fittizzi ovviamente
Codice sorgente - presumibilmente C++ |
MailMessage msg = new MailMessage(); msg.From = new MailAddress("ciccisbrin@gmail.com", "Nome Mittente"); msg.To.Add(new MailAddress("cicciricci@gmail.com", "Nome Destinatario")); msg.Subject = "Oggetto"; msg.Body = "Testo"; msg.Attachments.Add(new Attachment(@"C:\immagine.jpg")); SmtpClient client = new SmtpClient("smtp.servergenerico.com"); client.EnableSsl = true; client.Credentials = new NetworkCredential("nomeutente", "password"); client.Send(msg);
|
Come si evince da codice msg.Attachments.Add(new Attachment(@"C:\immagine.jpg")); mi permette di allegare SOLO questa immagine, ma io non so l'utente finale quanti allegati dovrà allegare... Spero di essere stato chiaro.
PS: il codice l'ho tirato giù veloce ma non rispecchia quello che uso io perchè ovviamente usando un windowsform i campi li prendo dai vari textbox.
Ultima modifica effettuata da Grad il 07/11/2012 alle 0:28 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Postato originariamente da Grad:
(Dovrei creare un thread apposito?) |
Sì
che permette un solo allegato. |
Fai altre Add ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Grad (Normal User)
Newbie
Messaggi: 14
Iscritto: 07/11/2012
|
Ti ringrazio tantissimo però sono un po duro di testa e non ho capito una cosa:
fare altre add lo immaginavo, ma a me servono "n" add, io non so se l'utente finale manderà 10, 0, 5 , insomma N allegati... io cosa dovrei fare mille add vuote ?
Grazie in anticipo
|
|
ampeg (Normal User)
Pro
Messaggi: 124
Iscritto: 21/04/2011
|
devi far aggiungere il percorso degli allegati non direttamente nel metodo Add della classe MailMessage ma ad esempio in una listbox cosicchè se ne possano aggiungere a piacere
il codice che hai postato lo richiami solo quando devi inviare la mail ad esempio cliccando su un pulsante
i percorsi degli allegati li aggiungi al metodo Add all'interno di un ciclo prendendoli dalla listbox utilizzata precenentemente per tenerli in memoria
Ultima modifica effettuata da ampeg il 07/11/2012 alle 13:05 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
In pratica, gli allegati come li sceglie l'utente?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Grad (Normal User)
Newbie
Messaggi: 14
Iscritto: 07/11/2012
|
Postato originariamente da ampeg:
devi far aggiungere il percorso degli allegati non direttamente nel metodo Add della classe MailMessage ma ad esempio in una listbox cosicchè se ne possano aggiungere a piacere
il codice che hai postato lo richiami solo quando devi inviare la mail ad esempio cliccando su un pulsante
i percorsi degli allegati li aggiungi al metodo Add all'interno di un ciclo prendendoli dalla listbox utilizzata precenentemente per tenerli in memoria
|
La soluzione mi piace un sacco.. potresti farmi un piccolo esempio con il codice?
Postato originariamente da nessuno:
In pratica, gli allegati come li sceglie l'utente?
|
sto ancora progettando la cosa ma io pensavo tipo di aprire con il menù un file chooser e da li potesse scegliere n allegati però non saprei come implementarlo... spero di essermi espresso abbastanza bene. |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Postato originariamente da Grad:
sto ancora progettando la cosa ma io pensavo tipo di aprire con il menù un file chooser e da li potesse scegliere n allegati però non saprei come implementarlo... spero di essermi espresso abbastanza bene. |
Quindi il tuo problema non è di codice ma di come devi implementare la cosa.
Semplicemente fai scegliere all'utente il file (con un bottone e una dialog box) e fai un Add inserendo il file in una listbox. Non mi pare complesso.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Grad (Normal User)
Newbie
Messaggi: 14
Iscritto: 07/11/2012
|
Ti ringrazio per la pazienza infinita!
Allora il mio problema però è ANCHE a livello codice... Da quello che ho capito la soluzione consiste nel far scegliere il file da un filechooser (o file browser o come si chiama), e inserirlo in una listbox. Ma così facendo l'utente non invia un singolo allegato? e come collego il file inserito in una listbox ad una Attachments.Add ?
|
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
Ciao.
Secondo me i passaggi che devi fare sono questi:
1) con un filechooser, che presumo corrisponda dalla OpenfileDialog di Vb.net, fai scegliere all'utente i files da allegare. Se imposti la proprietà multiselect (o simile) su true, puoi selezionare più file alla volta, se sono nella stessa cartella.
2) quando la dialog si chiude, tra le proprietà dovresti trovare un'array con il path dei file selezionati. Devi aggiungere tali path, in formato di stringa, alla tua listbox per mostrare all'utente che file selezionati
3) se ne deve aggiungere altro, riapre la dialog e seleziona altri file. (punto 1)
4) componi il messaggio di posta. Per inserire gli allegati, scorri tutti gli item della listbox e per ogni item, lo aggiungi (vai ad aggiungere il path) all'oggetto allegati della tua mail.
Questo è lo scheletro di quello che dovresti fare.. se non riesci in questo, ti mancano le basi e devi studiarti le guide base della programmazione.
A partire da qui:
http://www.pierotofy.it/pages/guide/Guida_al_Visual_Basic_ ...
Ciao
Ultima modifica effettuata da Renny il 07/11/2012 alle 16:59 |
|