一段时间后,电子邮件中的附件开始丢失
本文关键字:开始 电子邮件 一段时间 | 更新日期: 2023-09-27 18:33:48
我在电子邮件中的附件中遇到问题。每隔几天,用户在电子邮件中找不到预期的附件。这似乎发生了大约 10-20 分钟,然后它自行更正,这意味着后面的电子邮件将包含附件。我不确定这背后的原因是什么。这就是我的代码的样子
型
public class EmailAttachment
{
public string FileName { get; set; }
public byte[] FileContent { get; set; }
}
发送电子邮件的代码触发器
var emailAttachment= new EmailAttachment();
emailAttachment.FileContent = CreatePDFFile();
emailAttachment.FileName = "file.pdf";
EmailGeneratedCertificate(emailAttachment);
电子邮件准备代码
public void EmailGeneratedCertificate(EmailAttachment file)
{
//file.FileContent is a byte array
var ms = new MemoryStream(file.FileContent);
ms.Position = 0;
var contentType = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Application.Pdf);
var from = "xx@x.com";
var fromTargetName = "XXX";
var recepient="xx2@x.com"
var subject = "Attachment";
var body="<strong>Please find attachment.</strong>"
var attachment = new Attachment(ms, contentType);
attachment.ContentDisposition.FileName = file.FileName;
var attachments = new List<Attachment>();
attachments.Add(attachment);
_mailService.Send(recepient, null, subject, body, attachments);
}
我想指出的另一件事是,我有两个网站在不同的APP POOL
中运行,并且都有相同的电子邮件发送代码,如上所示,当此问题发生时,它似乎同时在两个网站上发生 10-15 分钟,然后自行纠正。请指教。
在您的问题中,您没有编写所有代码CreatePDFFile()
恕我直言是导致奇怪行为的原因,所以我只能从您发布的代码中猜测。
我看到 2 个主要问题:
-
private byte[] ReadFile(string path)
:您正在吞下任何异常,如果有一些异常,它将返回一个空字节数组,因此没有附件。 -
MemoryStream
EmailGeneratedCertificate(EmailAttachment file)
:您没有处理流,这可能会导致一些意外行为