Khi tôi đang cố gắng gửi email có tệp đính kèm với nhiều người nhận thông qua mã C# của tôi, System.Net.Mail.SmtpException là ném câu "Không gửi thư". Ngoại lệ bên trong là "Một trong các luồng đã được sử dụng và không thể đặt lại về nguồn gốc".SMTPException Một trong các luồng đã được sử dụng và không thể đặt lại về nguồn gốc
Tôi hiểu loại lỗi này có thể xảy ra do tệp đính kèm của tôi. Tôi đã tạo ra tập tin đính kèm của tôi trong một lớp học khác nhau như -
Attatchment file;
string fileContents = File.ReadAllText(fileName);
file = Attachment.CreateAttachmentFromString(fileContents, fileName);
tôi gửi nó ở định dạng này đến lớp tôi sẽ gửi email. Những điều sau xảy ra trong lớp học đó -
try
{
email.Subject = subject;
email.Body = body;
if (file != null)
{
email.Attachments.Add(file);
}
_smtpClient.Send(email);
}
catch
{
mailSent = false;
}
Thư luôn được gửi đến người nhận đầu tiên nhưng không thành công cho tất cả những người còn lại. Bất kỳ ý tưởng nào tại sao điều này có thể xảy ra?
Tôi đoán bạn có thể cần phải vứt bỏ 'tệp' trước khi thử sử dụng lại. – ChrisBint
@ChrisBint Bạn có thể cho tôi biết lý do không? Vì lỗi này không xảy ra một cách nhất quán. Đây là lần đầu tiên nó được cắt lên. Tôi đã sử dụng nó một lúc. Tôi sẽ thử điều đó ngay bây giờ, cảm ơn bạn. – DeeDeeR
@ChrisBint Tôi muốn nghiêng nhiều hơn để đoán rằng 'tệp' nội bộ có đối tượng luồng không thể được đặt lại để bắt đầu. – DavidG