บันทึกไฟล์แนบจากอีเมลโดยใช้ C#

ในฐานะนักพัฒนา C# คุณสามารถแยกและบันทึกไฟล์แนบจากข้อความอีเมลโดยทางโปรแกรมได้อย่างง่ายดาย ในบทความนี้ คุณจะได้เรียนรู้วิธีบันทึกไฟล์แนบจากอีเมลโดยใช้ C#

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

C# API เพื่อบันทึกไฟล์แนบอีเมล

สำหรับการบันทึกไฟล์แนบจากไฟล์ MSG เราจะใช้ GroupDocs.Viewer for .NET API เป็น API โปรแกรมดูเอกสารที่ทรงพลังในการเรนเดอร์และแสดงรูปแบบไฟล์ที่ใช้กันอย่างแพร่หลาย โดยไม่ต้องติดตั้งซอฟต์แวร์ภายนอกใดๆ นอกจากนี้ยังช่วยให้คุณสามารถดู [รูปแบบไฟล์ที่รองรับ] ยอดนิยมได้อย่างรวดเร็ว 7 ของ Word, Excel, PowerPoint, อีเมล Outlook, [โครงการ] 12, PDF, HTML และ XML

คุณสามารถ ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

Install-Package GroupDocs.Viewer

แยกและบันทึกไฟล์แนบจากอีเมลโดยใช้ C#

คุณสามารถแยกและบันทึกไฟล์แนบจากไฟล์ MSG ของอีเมลโดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  • ขั้นแรก โหลดไฟล์ MSG โดยใช้คลาส Viewer
  • จากนั้น เรียกใช้เมธอด Viewer.GetAttachments() เพื่อรับไฟล์แนบทั้งหมดของไฟล์ MSG ที่โหลด รับผลลัพธ์เป็นชุดไฟล์แนบ
  • สำหรับแต่ละไฟล์แนบในคอลเลกชัน ให้บันทึกไฟล์แนบโดยการเรียกเมธอด Viewer.SaveAttachment() ส่งวัตถุแนบและเส้นทางไฟล์เพื่อบันทึก

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกและบันทึกไฟล์แนบที่มีอยู่ในไฟล์ MSG ทางอีเมลโดยใช้ C#

string outputPath = @"C:\Files\Viewer\";

// เริ่มต้น API และโหลดไฟล์ MSG
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// รับเอกสารแนบ
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // บันทึกไฟล์แนบ
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
แยกและบันทึกไฟล์แนบจากอีเมลโดยใช้ C#

แยกและบันทึกไฟล์แนบจากอีเมลโดยใช้ C#

บันทึกไฟล์แนบเป็น PDF จากอีเมลโดยใช้ C#

คุณสามารถบันทึกไฟล์แนบข้อความอีเมลเป็น PDF โดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Attachment ด้วยชื่อไฟล์ที่แนบมาและเส้นทางของไฟล์
  • เตรียมใช้งานอินสแตนซ์ของคลาส MemoryStream
  • โหลดไฟล์ MSG โดยใช้คลาส Viewer
  • จากนั้น เรียกเมธอด Viewer.SaveAttachment() และส่งไฟล์แนบและออบเจ็กต์ MemoryStream เป็นพารามิเตอร์อินพุต มันจะแยกและบันทึกไฟล์แนบที่ระบุในสตรีมหน่วยความจำ
  • ตอนนี้ให้โหลดวัตถุ MemoryStream โดยใช้คลาส Viewer
  • จากนั้น สร้างอินสแตนซ์ของคลาส PdfViewOptions ด้วยเส้นทางไฟล์ PDF เอาท์พุต
  • สุดท้าย ให้เรียกเมธอด Viewer.View() เพื่อบันทึกและดูไฟล์แนบในรูปแบบ PDF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการบันทึกและดูไฟล์แนบเป็น PDF จากไฟล์ MSG อีเมลโดยใช้ C#

// เริ่มต้นสิ่งที่แนบมา
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// เริ่มต้น API และโหลดไฟล์ MSG
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // บันทึกไฟล์แนบในสตรีม
    viewer.SaveAttachment(attachment, attachmentStream);
}

// เริ่มต้น API และโหลดสตรีมไฟล์แนบ
using (Viewer viewer = new Viewer(attachmentStream))
{
    // กำหนดตัวเลือกมุมมอง PDF
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // ดูเป็น PDF
    viewer.View(viewOptions);
}

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแยกและบันทึกไฟล์แนบที่อยู่ในไฟล์ MSG ทางอีเมลโดยใช้ C# นอกจากนี้ คุณได้เห็นวิธีการบันทึกไฟล์แนบเฉพาะเป็น PDF โดยทางโปรแกรมแล้ว นอกจากนี้ คุณยังสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Viewer สำหรับ .NET API ได้โดยใช้ documentation ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย