Sono in grado di inviare un allegato in una mail ma il contenuto dell'allegato è vuoto e la dimensione viene mostrata come 0 byte.L'allegato e-mail dal flusso di memoria è vuoto in C#
Dopo aver effettuato una ricerca su Internet, è stato rilevato che è necessario reimpostare la posizione del flusso di memoria su 0 per iniziare dall'inizio.
Ho provato anche quello, ma sembra che non funzioni. Puoi per favore aiutare?
Di seguito riportiamo il mio frammento di codice:
NOTA: Sono in grado di salvare la cartella di lavoro e dei dati è presente nella cartella di lavoro salvata.
MemoryStream memoryStream = new MemoryStream();
StreamWriter writer = new StreamWriter(memoryStream);
writer.Write(xlWorkbook);
writer.Flush();
memoryStream.Position = 0;
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtpclient");
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "Entry";
mail.Body = "Hello, PFA ";
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment(memoryStream,"xls");
attachment.ContentDisposition.FileName = "Input" + DateTime.Now.ToString("yyyyMMdd_hhss") + ".xls";
mail.Attachments.Add(attachment);
SmtpServer.Port = 465;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("Username", "password");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
writer.Dispose();
Sapete che il file XLS viene letto correttamente? Qual è la posizione dopo il colore? – Virmundi
Il valore di posizione dopo lo svuotamento è 44 –
Ultima domanda diagnostica, che succede se si cerca di 0 anziché di Posizione = 0? Come memStream.Seek (0, SeekOrigin.Begin); – Virmundi