การจัดการข้อความ Outlook

Contents
[ ]

บันทึกอีเมลเป็น HTML

Aspose.Email ทำให้สามารถบันทึกรีซอร์สของอีเมลด้วยเส้นทาง relative เมื่อส่งออกข้อความเป็นรูปแบบ HTML คุณลักษณะนี้ให้ความยืดหยุ่นมากขึ้นในวิธีการเชื่อมโยงรีซอร์สในไฟล์ HTML ที่ส่งออก ทำให้แชร์และแสดงอีเมลที่บันทึกไว้บนระบบต่าง ๆ ง่ายขึ้น เพื่อบันทึกรีซอร์สด้วยเส้นทาง relative ใช้ HtmlSaveOptions.UseRelativePathToResources property. ค่าเริ่มต้นของ property คือ false (รีซอร์สจะบันทึกด้วยเส้นทาง absolute). เมื่อตั้งค่าเป็น true, รีซอร์สจะบันทึกด้วยเส้นทาง relative.

ไฟล์ HTML ที่มีเส้นทาง relative จะพกพาได้ง่ายกว่าและสามารถดูได้อย่างถูกต้องไม่ว่ารูปแบบไฟล์ของสภาพแวดล้อมโฮสติ้งจะเป็นอย่างไร คุณสามารถเลือกใช้เส้นทาง absolute หรือ relative ตามความต้องการ คุณสามารถกำหนดเส้นทาง custom สำหรับรีซอร์สโดยใช้ ResourceHtmlRendering เหตุการณ์.

ตัวอย่างโค้ดต่อไปนี้แสดงวิธี บันทึกอีเมลด้วยเส้นทาง relative เริ่มต้นไปยังรีซอร์ส:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

ในกรณีนี้, รีซอร์สจะถูกบันทึกในโฟลเดอร์ [html file name]_files, ในเส้นทางเดียวกับไฟล์ .html และ HTML จะอ้างอิงรีซอร์สผ่านเส้นทาง relative.

ตัวอย่างโค้ดด้านล่างนี้แสดงวิธี บันทึกด้วยเส้นทาง absolute ไปยังรีซอร์ส:

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = false
};

msg.Save(Path.Combine("target_files"), htmlSaveOptions);

เช่นเดียวกับกรณีแรก, รีซอร์สจะถูกบันทึกในโฟลเดอร์ [html file name]_files ตามค่าเริ่มต้น แต่ HTML จะอ้างอิงรีซอร์สโดยใช้เส้นทางแบบ absolute.

โดยใช้ ResourceHtmlRendering เหตุการณ์, คุณสามารถตั้งค่าเส้นทางสัมพันธ์หรือสัมบูรณ์แบบกำหนดเองสำหรับทรัพยากร. เมื่อปรับแต่งเส้นทางด้วย ResourceHtmlRendering ตัวจัดการเหตุการณ์, และเนื่องจาก UseRelativePathToResources เมื่อกำหนดเป็น true, คุณควรกำหนดเส้นทางสัมพันธ์ให้กับ PathToResourceFile คุณสมบัติสำหรับรับรองการอ้างอิงที่ถูกต้อง.

ตัวอย่างโค้ดต่อไปนี้สาธิตวิธี กำหนดเส้นทางสัมพัทธ์แบบกำหนดเองโดยใช้เหตุการณ์ ResourceHtmlRendering

var msg = MapiMessage.Load(sourceFileName);

var htmlSaveOptions = new HtmlSaveOptions
{
    ResourceRenderingMode = ResourceRenderingMode.SaveToFile,
    UseRelativePathToResources = true
};

htmlSaveOptions.ResourceHtmlRendering += (o, args) =>
{
    if (o is AttachmentBase attachment)
    {
	    // Since UseRelativePathToResources = true, you should assign a relative path to the PathToResourceFile property.
        args.PathToResourceFile = $@"images\{attachment.ContentType.Name}";
    }
};

msg.Save(Path.Combine(targetPath, "A Day in the Park.html"), htmlSaveOptions);

แปลง MSG เป็น MIME Messages

Aspose.Email API มีความสามารถในการแปลงไฟล์ MSG เป็นข้อความ MIME โดยใช้ ToMailMessage เมธอด.

ตั้งค่า Timeout สำหรับการแปลงและโหลดข้อความ

คุณสมบัติดังต่อไปนี้จะช่วยให้คุณตั้งค่า timeout เป็นมิลลิวินาทีสำหรับกระบวนการแปลงและโหลด:

  • MailConversionOptions.Timeout property- จำกัดเวลาเป็นมิลลิวินาทีขณะแปลงข้อความ.

  • MailConversionOptions.TimeoutReached - เกิดขึ้นหากหมดเวลาในขณะแปลงเป็น MailMessage.

  • MsgLoadOptions.Timeout - จำกัดเวลาเป็นมิลลิโวลต์ขณะแปลงข้อความ.

  • MsgLoadOptions.TimeoutReached - เกิดขึ้นหากหมดเวลาในขณะแปลงเป็น MailMessage.

ตัวอย่างโค้ดด้านล่างนี้จะแสดงวิธีตั้งค่า timeout ขณะแปลงข้อความ:

var options = new MailConversionOptions();
// Set the timeout to 5 seconds
options.Timeout = 5000;

options.TimeoutReached += (object sender, EventArgs args) =>
{
    string subj = (sender as MailMessage).Subject;
	 // Set a flag indicating the timeout was reached
    isTimedOut = true;
};

var mailMessage = mapiMessage.ToMailMessage(options);

การแปลง MSG เป็น EML โดยคงรักษา RTF body

การแปลงไฟล์ MSG เป็น EML โดยคงรักษาเนื้อหา RTF สามารถทำได้สองวิธี:

ทั้งสอง property จะได้รับหรือกำหนดค่าที่บ่งบอกว่าจะคงรักษาเนื้อหา rtf ใน MailMessage หรือไม่.

โค้ด snippet ต่อไปนี้แสดงวิธีแปลงไฟล์ MSG เป็น EML และคงรักษาเนื้อหา RTF:

var loadOptions = new MsgLoadOptions
{
    PreserveRtfContent = true
};

var eml = MailMessage.Load("my.msg", loadOptions);
var conversionOptions = new MailConversionOptions
{
    PreserveRtfContent = true
};

var msg = MapiMessage.Load("my.msg");

var eml = msg.ToMailMessage(conversionOptions);

จัดการไฟล์เทมเพลต Outlook (.OFT)

เทมเพลต Outlook มีประโยชน์มากเมื่อคุณต้องการส่งข้อความอีเมลที่คล้ายกันซ้ำ ๆ แทนการเตรียมข้อความจากศูนย์ทุกครั้ง, ขั้นแรกให้เตรียมข้อความใน Outlook แล้วบันทึกเป็น Outlook Template (OFT). หลังจากนั้น เมื่อใดก็ตามที่ต้องส่งข้อความ คุณสามารถสร้างจากเทมเพลตได้ ช่วยประหยัดเวลาในการเขียนข้อความเดิมในส่วนเนื้อหา หรือหัวเรื่อง, ตั้งค่าการจัดรูปแบบ ฯลฯ Aspose.Email’s MailMessage คลาสสามารถใช้เพื่อโหลดและอ่านไฟล์แม่แบบ Outlook (OFT) เมื่อโหลดแม่แบบ Outlook แล้วในอินสแตนซ์ของ MailMessage คลาส คุณสามารถอัปเดตผู้ส่ง, ผู้รับ, เนื้อหา, หัวข้อและคุณสมบัติอื่นๆ หลังจากอัปเดตคุณสมบัติแล้ว:

  • ส่งอีเมลโดยใช้ SmtpClient คลาสหรือ
  • บันทึกข้อความเป็น MSG และทำการอัปเดต/ตรวจสอบเพิ่มเติมโดยใช้ Microsoft Outlook.

ในตัวอย่างโค้ดด้านล่าง เรา:

  1. โหลดแม่แบบโดยใช้ MailMessage คลาส.
  2. อัปเดตคุณสมบัติบางอย่าง.
  3. บันทึกข้อความในรูปแบบ MSG.

โค้ด snippet ต่อไปนี้แสดงวิธีโหลดไฟล์ OFT, ปรับปรุงข้อความและบันทึกเป็นรูปแบบ MSG.

บันทึกไฟล์ MSG เป็นเทมเพลต

ส่วนโค้ดต่อไปนี้จะแสดงวิธีบันทึกไฟล์ Outlook MSG เป็นแม่แบบ

กำหนดประเภทข้อความ MAPI (OFT หรือ MSG)

เมื่อต้องโหลดวัตถุ MapiMessage จากไฟล์ คุณอาจต้องตรวจสอบว่าเมสเซจที่โหลดเป็นไฟล์เทมเพลตหรือไฟล์อีเมลปกติ โดยการใช้ IsTemplate คุณสมบัติของ MapiMessage คลาสนี้ช่วยให้คุณตรวจจับได้อย่างแม่นยำว่าอีเมลเป็นเทมเพลตหรือไม่ ความสามารถนี้มีประโยชน์เมื่อต้องจัดการและประมวลผลไฟล์อีเมลประเภทต่าง ๆ ในแอปพลิเคชันและระบบ.

ตัวอย่างโค้ดด้านล่างแสดงวิธีตรวจสอบว่า MapiMessage เป็น OFT หรือ MSG:

var msg = MapiMessage.Load("message.msg");
var isOft = msg.IsTemplate; // returns false

var msg = MapiMessage.Load("message.oft");
var isOft = msg.IsTemplate; // returns true

บันทึก MapiMessage หรือ MailMessage ในรูปแบบ OFT

นี้ SaveOptions คลาสนี้อนุญาตให้คุณระบุตัวเลือกเพิ่มเติมเมื่อบันทึก MailMessage หรือ MapiMessage ลงในรูปแบบเฉพาะ.

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีบันทึกข้อความเป็นรูปแบบ OFT:

// Save the MailMessage to OFT format
using (var eml = MailMessage.Load("message.eml"))
{
    eml.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    eml.Save("message.oft", saveOptions);

}

// Save the MapiMessage to OFT format
using (var msg = MapiMessage.Load("message.msg"))
{
    msg.Save("message.oft", SaveOptions.DefaultOft);
	
	// or alternative way #2
	var saveOptions = new MsgSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
	
	// or alternative  way #3
	saveOptions = SaveOptions.CreateSaveOptions(MailMessageSaveType.OutlookTemplateFormat);
    msg.Save("message.oft", saveOptions);
}

จัดการข้อความที่มีลายเซ็นดิจิทัล

Aspose.Email ใช้การทำงานของอัลกอริทึมอ็อบเจกต์อีเมล S/MIME อย่างครบถ้วน ทำให้ API มีความสามารถเต็มที่ในการคงรักษาลายเซ็นดิจิทัลขณะแปลงข้อความระหว่างรูปแบบต่าง ๆ.

คงรักษาลายเซ็นขณะแปลงจาก EML เป็น MSG

Aspose.Email คงลายเซ็นดิจิทัลขณะแปลงจาก EML เป็น MSG ส่วนโค้ดต่อไปนี้แสดงวิธีแปลงจาก EML ไปยัง MSG.

แปลงข้อความ S/MIME จาก MSG เป็น EML

Aspose.Email คงลายเซ็นดิจิทัลขณะแปลงจาก MSG เป็น EML ตามที่แสดงในส่วนโค้ดต่อไปนี้.

ตรวจสอบลายเซ็นของอีเมลที่ปลอดภัย

คุณลักษณะต่อไปนี้พร้อมใช้งานเพื่อตรวจสอบลายเซ็นของวัตถุ MapiMessage.

ตัวอย่างโค้ดด้านล่างแสดงวิธีนำคุณลักษณะเหล่านี้ไปใช้ในโครงการของคุณ:

var msg = MapiMessage.Load(fileName, new EmlLoadOptions());
var result = new SecureEmailManager().CheckSignature(msg);

var certFileName = "cert.pfx";
var cert = new X509Certificate2(certFileName, "pass");
var eml = MapiMessage.Load(fileName);
var store = new X509Store();
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();

var result = new SecureEmailManager().CheckSignature(eml, cert, store);

ลบลายเซ็นจาก MapiMessages

เพื่อความเข้ากันได้ที่ดียิ่งขึ้น, MapiMessage.RemoveSignature เมธอดและ MapiMessage.IsSigned คุณสมบัติเหล่านี้ใช้เพื่อลบลายเซ็นดิจิทัลออกจากข้อความ.

โค้ดสแนปต่อไปนี้แสดงวิธีนำคุณลักษณะเหล่านี้ไปใช้ในโครงการของคุณ:

var msg = MapiMessage.Load(fileName);

if (msg.IsSigned)
{
    var unsignedMsg = msg.RemoveSignature();
}

ถอดรหัส MapiMessages ด้วยใบรับรอง

หากคุณมีข้อความ MAPI ที่เข้ารหัสและต้องการถอดรหัสด้วยคีย์ส่วนตัวที่เก็บในใบรับรอง คุณลักษณะของ Aspose.Email ต่อไปนี้อาจเป็นประโยชน์:

  • MapiMessage.IsEncrypted - รับค่าที่แสดงว่าข้อความถูกเข้ารหัสหรือไม่.
  • MapiMessage.Decrypt() - ถอดรหัสข้อความนี้ (วิธีการค้นหาระยะผู้ใช้และคอมพิวเตอร์ใน My stores เพื่อหาใบรับรองและคีย์ส่วนตัวที่เหมาะสม).
  • MapiMessage.Decrypt(X509Certificate2 certificate) - ถอดรหัสข้อความนี้ด้วยใบรับรอง.

ส่วนโค้ดต่อไปนี้แสดงวิธีทำงานกับข้อความ MAPI ที่เข้ารหัส:

var privateCert = new X509Certificate2(privateCertFile, "password");
var msg = MapiMessage.Load("encrypted.msg");

if (msg.IsEncrypted);
{
    var decryptedMsg = msg.Decrypt(privateCert);
}

ตั้งค่าหมวดหมู่สีสำหรับไฟล์ MSG

ประเภทสีทำเครื่องหมายข้อความอีเมลเพื่อบ่งบอกความสำคัญหรือประเภทบางอย่าง Microsoft Outlook ให้ผู้ใช้กำหนดประเภทสีเพื่อแยกแยะอีเมล เพื่อจัดการประเภทสี ให้ใช้ FollowUpManager. มีฟังก์ชันเช่น AddCategory, RemoveCategory, ClearCategories และ GetCategories.

  • AddCategory รับค่า MapiMessage และสตริงประเภทสี เช่น "Purple Category" หรือ "Red Category" เป็นอาร์กิวเมนต์.
  • RemoveCategory รับค่า MapiMessage และสตริงประเภทสีที่ต้องการลบออกจากข้อความ
  • ClearCategories ใช้เพื่อลบประเภทสีทั้งหมดจากข้อความ.
  • GetCategories ใช้เพื่อดึงประเภทสีทั้งหมดจากข้อความที่ระบุ.

ตัวอย่างต่อไปนี้ทำงานตามขั้นตอนที่ระบุด้านล่าง:

  1. เพิ่มประเภทสี.
  2. เพิ่มประเภทสีอื่น.
  3. ดึงรายการของทุกประเภท.
  4. ลบทุกประเภทออกทั้งหมด.

เข้าถึงข้อมูลติดตามในไฟล์ MSG

Aspose.Email API ให้ความสามารถในการเข้าถึงข้อมูลติดตามจากข้อความที่ส่งหรือรับ สามารถดึงข้อมูลการอ่าน การรับการจัดส่งและผลการโหวตจากไฟล์ข้อความได้

ดึงข้อมูลการอ่านและใบรับรองการส่ง

ส่วนโค้ดต่อไปนี้จะแสดงให้คุณเห็นวิธีการเรียกคืนข้อมูลการรับและการยืนยันการจัดส่ง

สร้างข้อความส่งต่อและตอบกลับ

Aspose.Email API มีความสามารถในการสร้างและจัดรูปแบบข้อความส่งต่อและตอบกลับ. ReplyMessageBuilder และ ForwardMessageBuilder คลาสของ API ใช้สร้างข้อความ Reply และ Forward ตามลำดับ ข้อความ Reply หรือ Forward สามารถกำหนดให้สร้างโดยใช้โหมดใดก็ได้ของ OriginalMessageAdditionMode enum. enum นี้มีค่าต่อไปนี้:

  • OriginalMessageAdditionMode.None - ข้อความต้นฉบับจะไม่ถูกรวมในข้อความตอบกลับ.
  • OriginalMessageAdditionMode.Attachment - ข้อความต้นฉบับจะรวมเป็นไฟล์แนบในข้อความตอบกลับ
  • OriginalMessageAdditionMode.Textpart - ข้อความต้นฉบับจะถูกรวมเป็นข้อความในเนื้อหาของข้อความตอบกลับ

สร้างข้อความตอบกลับ

โค้ดสแนปต่อไปนี้จะแสดงวิธีสร้างข้อความตอบกลับ.

สร้างข้อความส่งต่อ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างข้อความต่อ (forward).