Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Inviare email con n allegati
Forum - C# / VB.NET - [C#] Inviare email con n allegati - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Grad (Normal User)
Newbie


Messaggi: 14
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 18:24
Mercoledì, 07/11/2012
Testo quotato

Postato originariamente da Renny:

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:k:



Ti ringrazio tantissimo Renny ;) Ho capito tutto ti ringrazio, i punti sono stati fondamentali. Per precisare le basi fortunatamente non mancano...
Ora provo a vedere un po cosa riesco a combinare... devo capire da codice come dare al Attachments.Add  tutti i file presenti nella listbox e il gioco è fatto!


PS: mi scuso se continuavo a scrivere FileChooser ma sono abituato a lavorare in Java... in C# si chiama come dice Renny: OpenFileDialog!!!

Ultima modifica effettuata da Grad il 07/11/2012 alle 18:31
PM Quote
Avatar
Grad (Normal User)
Newbie


Messaggi: 14
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 19:41
Mercoledì, 07/11/2012
Posto la soluzione cosicché possa servire a chi avrà il mio solito problema.
Ringrazio nessuno, Renny e ampeg per la loro cortesia e pazienza!!! Grazie davvero!!!

Fuori dai due eventi ho dichiarato la listbox
Codice sorgente - presumibilmente C# / VB.NET

  1. public ListBox list = new ListBox();



Codice per il bottone che apre l'OpenFileDialog per scegliere gli allegati
Codice sorgente - presumibilmente C++

  1. private void button2_Click(object sender, EventArgs e)
  2.         {
  3.             Stream myStream;
  4.             OpenFileDialog openFileDialog1 = new OpenFileDialog();
  5.             int i = 0;
  6.  
  7.             openFileDialog1.InitialDirectory = "c:\\";
  8.             openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
  9.             openFileDialog1.FilterIndex = 2;
  10.             openFileDialog1.RestoreDirectory = true;
  11.  
  12.             if (openFileDialog1.ShowDialog() == DialogResult.OK)
  13.             {
  14.                 if ((myStream = openFileDialog1.OpenFile()) != null)
  15.                 {
  16.                    
  17.                     try
  18.                     {
  19.                         string tempFolder = System.IO.Path.GetTempPath();
  20.  
  21.                         foreach (string FileName in this.openFileDialog1.FileNames)
  22.                         {
  23.                             this.openFileDialog1.FileNames[i] = FileName;
  24.                             list.Items.Add(FileName);
  25.                             i++;
  26.                         }
  27.                     }
  28.                     catch (Exception ex)
  29.                     {
  30.                         MessageBox.Show("Errore blablablabla" + ex.Message);
  31.                     }
  32.  
  33.                 myStream.Close();
  34.                 }
  35.             }
  36.         }




codice per inviare la mail con n allegati

Codice sorgente - presumibilmente C#

  1. MailMessage msg = new MailMessage();
  2.  
  3. msg.From = new MailAddress("ciccisbrin@gmail.com", "Nome Mittente");
  4.  
  5. msg.To.Add(new MailAddress("cicciricci@gmail.com", "Nome Destinatario"));
  6.  
  7. msg.Subject = "Oggetto";
  8.  
  9. msg.Body = "Testo";
  10.  
  11. //Semplice ciclo che legge tutte le url degli n files e li allega
  12. int i = 0;
  13. String allegato;
  14.  
  15. for (i = 0; i < list.Items.Count; i++)
  16. {    
  17.       allegato = (String)list.Items[i];
  18.       msg.Attachments.Add(new Attachment(allegato));
  19. }
  20.  
  21. SmtpClient client = new SmtpClient("smtp.servergenerico.com");
  22.  
  23. client.EnableSsl = true;
  24. client.Credentials = new NetworkCredential("nomeutente", "password");
  25. client.Send(msg);


PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 21:14
Mercoledì, 07/11/2012
Bhe, prego, felice di esserti stato utile.. Si trattava solo di ragionare un po', e con una piccola spinta hai risolto da te il problema in ottimo modo..
Ti chiedo solo una cosa: forse sarà una stupidata per uno non pratico del C# ma.. a cosa ti serve questa riga di codice:
Codice sorgente - presumibilmente C# / VB.NET

  1. if ((myStream = openFileDialog1.OpenFile()) != null)


Perché crei uno stream? Devi "aprirli" i file, o solo elencarne il percorso? :-|
Ciao, alla prossima! :k:

PM Quote
Avatar
Grad (Normal User)
Newbie


Messaggi: 14
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 21:34
Mercoledì, 07/11/2012
Perdonami ho postato il codice contentente delle righe per aprire uno stream ad un file di log che mi serviva per mio tornaconto ma che non ho poi scritto... Quindi il codice perfetto sarebbe così:
Codice sorgente - presumibilmente C++

  1. private void button2_Click(object sender, EventArgs e)
  2.         {
  3.             OpenFileDialog openFileDialog1 = new OpenFileDialog();
  4.             int i = 0;
  5.  
  6.             openFileDialog1.InitialDirectory = "c:\\";
  7.             openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
  8.             openFileDialog1.FilterIndex = 2;
  9.             openFileDialog1.RestoreDirectory = true;
  10.  
  11.             if (openFileDialog1.ShowDialog() == DialogResult.OK)
  12.             {    
  13.                     try
  14.                     {
  15.                         string tempFolder = System.IO.Path.GetTempPath();
  16.  
  17.                         foreach (string FileName in this.openFileDialog1.FileNames)
  18.                         {
  19.                             this.openFileDialog1.FileNames[i] = FileName;
  20.                             list.Items.Add(FileName);
  21.                             i++;
  22.                         }
  23.                     }
  24.                     catch (Exception ex)
  25.                     {
  26.                         MessageBox.Show("Errore blablablabla" + ex.Message);
  27.                     }
  28.             }
  29.         }


Ultima modifica effettuata da Grad il 07/11/2012 alle 21:47
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo