การจัดการไฟล์แนบ 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
-
void SaveToTnef(string filename) - บันทึก MapiAttachment ไปยังไฟล์ TNEF
-
void SaveToTnef(Stream stream) - บันทึก MapiAttachment ไปยังสตรีมในรูปแบบ 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}");
}