]Rik`[
08-07-2010, 21:30
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:
// 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);
ho provato a spulciare un po' su msdn ma non ho trovato niente di utile, ho trovato la proprietà
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?
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:
// 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);
ho provato a spulciare un po' su msdn ma non ho trovato niente di utile, ho trovato la proprietà
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?