|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
[c#] invio di una mail..e poi?
salve, ho questa domanda da sottoporvi.
ho realizzato un programmino idiota che zippa il contenuto di una cartella scelta dall'utente e la invia in automatico ad un indirizzo email scelto da me. ora: il file zip "temporaneo" deve essere cancellato dopo l'invio della mail. al momento ho un codice tipo questo: Codice:
// creo il messaggio email con i vari campi
MailMessage message = new MailMessage();
message.To.Add(destinatario);
message.Subject = "backup del giorno " + DateTime.Now.ToString();
message.From = new System.Net.Mail.MailAddress(mittente);
message.Body = "Questo è il backup effettuato in data " + DateTime.Now.ToString();
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(server_posta_uscita);
// preparo l'allegato
string file = "C:\\backup.zip";
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
message.Attachments.Add(data);
// invio il messaggio
smtp.Send(message);
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess; ma serve solo a notificare il mittente in caso di invio effettuato, il programma non può sapere quando l'invio è andato a buon fine. se provo a cancellare il file subito dopo il comando smtp.send(message) ovviamente mi dà errore perché ancora l'invio è in corso e non posso cancellare il file.. ..avete idee? Ultima modifica di ]Rik`[ : 08-07-2010 alle 21:36. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
non ti conveniva creare tutto in memoria ed allegare direttamente l'array di byte?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Io invece credo che il tuo problema sia il fatto che MailMessage è IDisposable e per l'appunto lo stai usando in modo che MailMessage mantenga aperto un riferimento al file chee quindi non risulta eliminabile.
Prova ad usare: Codice:
using (MailMessage message = new MailMessage())
{
...
smtp.Send(message);
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
grazie tomminno. stasera appena torno a casa provo
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Perugia
Messaggi: 16302
|
risolto, grande
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:42.



















