Quando sto tentando di inviare un'e-mail con allegato con più di un destinatario tramite il mio codice C# un System.Net.Mail.SmtpException è lanciato dicendo "Fallimento invio di posta". L'eccezione interna è "Uno degli stream è già stato utilizzato e non può essere ripristinato all'origine".SMTPException Uno degli stream è già stato utilizzato e non può essere ripristinato all'origine
Capisco che questo tipo di errore potrebbe accadere a causa del mio attaccamento. Ho creato il mio attaccamento in una classe diversa da -
Attatchment file;
string fileContents = File.ReadAllText(fileName);
file = Attachment.CreateAttachmentFromString(fileContents, fileName);
Sto inviando in questo formato per la mia classe che invia l'e-mail. Il seguente accade in questa classe -
try
{
email.Subject = subject;
email.Body = body;
if (file != null)
{
email.Attachments.Add(file);
}
_smtpClient.Send(email);
}
catch
{
mailSent = false;
}
La posta viene sempre inviata al primo destinatario ma non riesce per tutto il resto. Qualche idea sul perché questo potrebbe accadere?
Immagino che potrebbe essere necessario disporre di "file" prima di tentare di usarlo di nuovo. – ChrisBint
@ChrisBint Sareste in grado di dirmi perché? Perché questo errore non si verifica in modo coerente neanche. Questa è la prima volta che è spuntata. L'ho usato per un po '. Ci proverò ora, grazie. – DeeDeeR
@ChrisBint Sarei più incline a indovinare che 'file' ha internamente un oggetto stream che non può essere resettato per iniziare. – DavidG