【发布时间】:2021-07-16 19:31:42
【问题描述】:
我的问题是,一旦我尝试通过内部 SMTP 服务器发送附件,就会出现错误。一旦附加超过 150KB,就会发生错误。 SMTP 服务器的限制设置为 25MB。 当我在我的开发机器上对其进行测试时,它一切正常,但是一旦它在 Live-Server 上,就会出现文件未打开且无法访问的问题。我没有使用任何 FileStream。
Exception: System.ObjectDisposedException
Message: Cannot access a closed file.
Source: mscorlib
at System.IO.__Error.FileNotOpen()
at System.IO.FileStream.Seek(Int64 offset, SeekOrigin origin)
at System.Web.HttpRawUploadedContent.TempFile.GetBytes(Int32 offset, Int32 length, Byte[] buffer, Int32 bufferOffset)
at System.Web.HttpRawUploadedContent.CopyBytes(Int32 offset, Byte[] buffer, Int32 bufferOffset, Int32 length)
at System.Web.HttpInputStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Mime.MimePart.Send(BaseWriter writer, Boolean allowUnicode)
at System.Net.Mime.MimeMultiPart.Send(BaseWriter writer, Boolean allowUnicode)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
代码:
NetworkCredential loginInfo = new NetworkCredential(model.user, model.password);
SmtpClient smtpClient = new SmtpClient(model.server, int.Parse(model.port));
smtpClient.EnableSsl = model.ssl;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = loginInfo;
MailMessage mail = new MailMessage();
mail.From = new MailAddress(model.from); //From Adress
mail.To.Add(new MailAddress(model.to)); //To Adress
mail.Subject = model.subject;
mail.Body = model.body;
mail.IsBodyHtml = true;
foreach (var file in model.attachments)
{
mail.Attachments.Add(new Attachment(file.InputStream, file.FileName));
}
smtpClient.Send(mail);
【问题讨论】:
-
电子邮件列表中有多少人?您可能需要拆分列表。
-
只有一个接收器
标签: c# email smtp email-attachments