簡體   English   中英

一段時間后,電子郵件中的附件開始丟失

[英]Attachment start missing in an Email after a period of time

我在電子郵件中遇到附件問題。 每隔幾天,用戶就無法在電子郵件中找到預期的附件。 這似乎發生了大約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個主要問題:

  1. private byte[] ReadFile(string path) :你吞下任何異常,如果有的話,它返回一個空字節數組,所以沒有附件。
  2. EmailGeneratedCertificate(EmailAttachment file) MemoryStream :您沒有處理流,這可能會出現一些意外行為

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM