การจัดการไฟล์แนบ TNEF ในข้อความอีเมล

TNEF (Transport Neutral Encapsulation Format) คือรูปแบบที่เป็นกรรมสิทธิ์ของ Microsoft Outlook ใช้ในการบรรจุเนื้อหาที่มีความหลากหลายในไฟล์แนบ — ส่วนใหญ่จะเก็บเป็น winmail.dat API Aspose.Email ช่วยให้คุณอ่านข้อความอีเมลที่มีไฟล์แนบ TNEF และแก้ไขเนื้อหาของไฟล์แนบได้ จากนั้นอีเมลสามารถบันทึกเป็นอีเมลปกติหรือในรูปแบบเดียวกันโดยคงไฟล์แนบ TNEF นี้ไว้ บทความนี้แสดงตัวอย่างโค้ดต่าง ๆ สำหรับการทำงานกับข้อความที่มีไฟล์แนบ TNEF อีกทั้งยังแสดงวิธีสร้างไฟล์ EML แบบ TNEF จากไฟล์ Outlook MSG

อ่านข้อความพร้อมไฟล์แนบ TNEF

โค้ดตัวอย่างต่อไปนี้แสดงวิธีอ่านข้อความพร้อมคงไฟล์แนบ TNEF ไว้

อ่านข้อความโดยไม่มีไฟล์แนบ TNEF

โค้ดตัวอย่างต่อไปนี้แสดงวิธีอ่านข้อความโดยไม่คงไฟล์แนบ TNEF

การโหลดและบันทึกไฟล์แนบ TNEF

ด้วย Aspose.Email for .NET คุณสามารถโหลดไฟล์แนบ TNEF โดยตรงเข้าสู่ MapiAttachment อ็อบเจกต์โดยใช้เส้นทางไฟล์หรือสตรีม แล้วบันทึกอ็อบเจกต์เป็นรูปแบบ TNEF สิ่งนี้ทำให้สามารถสร้างไฟล์ winmail.dat หรือคงรูปแบบเฉพาะของ Outlook ในกระบวนการอีเมลได้

API มีสมาชิกต่อไปนี้ใน MapiAttachment คลาส:

โหลดไฟล์แนบ TNEF

  • static MapiAttachment LoadFromTnef(string fileName) - โหลดไฟล์แนบ TNEF จากไฟล์ .dat

  • static MapiAttachment LoadFromTnef(Stream stream) - โหลดไฟล์แนบ TNEF จากสตรีม (เช่น MemoryStream หรือสตรีมไฟล์)

บันทึกไฟล์แนบ TNEF

ตัวอย่างโค้ดด้านล่างแสดงวิธีแยกไฟล์แนบ winmail.dat จากข้อความอีเมล คงไว้ และเพิ่มกลับเป็นไฟล์แนบในข้อความอีกครั้ง:

// message.eml contains a winmail.dat attachment, but by default, the attachment is not preserved.
var msg = MapiMessage.Load("message.eml");

var ms = new MemoryStream();
msg.Attachments[0].SaveToTnef("winmail.dat");

ms.Position = 0;
var fromtnefAttachment = MapiAttachment.LoadFromTnef(ms);
msg.Attachments.Add(fromtnefAttachment);

fromtnefAttachment = MapiAttachment.LoadFromTnef("winmail.dat");
msg.Attachments.Add(fromtnefAttachment);

อัพเดททรัพยากรในไฟล์แนบ TNEF

โค้ดตัวอย่างต่อไปนี้แสดงวิธีอัพเดททรัพยากรในไฟล์แนบ TNEF และคงรูปแบบ TNEF ไว้

เพิ่มไฟล์แนบไปยังข้อความ TNEF

โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่มไฟล์แนบใหม่ไปยังข้อความหลักที่มี TNEF

สร้าง TNEF EML จาก MSG

บางครั้งไฟล์ MSG ของ Outlook มีข้อมูลเช่นตารางและสไตล์ข้อความที่อาจเสียหายหากแปลงเป็น EML การสร้างข้อความ TNEF จากไฟล์ MSG ดังกล่าวทำให้คงรูปแบบไว้และแม้แต่ส่งข้อความเหล่านี้ผ่านไคลเอนต์อีเมลโดยรักษารูปแบบเดิมไว้ MailConversionOptions.ConvertAsTnef คุณสมบัตินี้ใช้เพื่อทำเช่นนั้น โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้าง EML แบบ TNEF จาก MSG

สำหรับการสร้าง TNEF สามารถใช้โค้ดตัวอย่างต่อไปนี้ได้.

ระบุข้อความรูปแบบ TNEF

โค้ดตัวอย่างต่อไปนี้แสดงวิธีตรวจจับว่าข้อความเป็น TNEF หรือไม่

ระบุไฟล์แนบรูปแบบ TNEF

นี้ Attachment.IsTnef คุณสมบัตินี้ช่วยตรวจสอบว่าการแนบข้อความเป็นข้อความที่ฟอร์แมตเป็น TNEF หรือไม่

var eml = MailMessage.Load(fileName);

foreach (attachment in eml.Attachments)
{
    Console.WriteLine($"Is Attachment TNEF?: {attachment.IsTnef}");
}