
เมื่อส่งอีเมล คุณอาจต้องส่งเนื้อหามัลติมีเดีย เช่น ภาพ เสียง และวิดีโอ นี่คือที่ที่ข้อความ MIME (Multipurpose Internet Mail Extensions) เข้ามาในบทความนี้ เราจะสำรวจวิธีการสร้าง EML ข้อความโดยใช้โปรแกรมใน C# เมื่อสิ้นสุดบทความ คุณจะเข้าใจ วิธีการสร้างข้อความ MIME เพิ่มภาพไปยังเนื้อหา HTML ของอีเมลและบันทึกอีเมลในรูปแบบ EML
- .NET API เพื่อสร้างข้อความ MIME
- สร้างไฟล์ EML จากศูนย์
- เพิ่มภาพไปยังเนื้อหา HTML
- สร้างไฟล์ EML จากไฟล์ HTML
- เคล็ดลับในการปรับปรุงการแสดงผลของข้อความ HTML ใน Outlook
.NET API เพื่อสร้างข้อความ MIME
ก่อนที่คุณจะสร้างข้อความ MIME แรกของคุณ ขั้นตอนแรกคือการติดตั้ง Aspose.Email for .NET ในโปรเจคของคุณ มันเป็นไลบรารีที่ทรงพลังสำหรับนักพัฒนา C# ที่ให้ชุดเครื่องมือที่ครอบคลุมสำหรับการทำงานกับข้อความอีเมล รวมถึงความสามารถในการสร้างข้อความ MIME โดยใช้โปรแกรม ไลบรารีช่วยให้นักพัฒนาจัดการแง่มุมต่างๆ ของข้อความ MIME ได้ง่าย เช่น ไฟล์แนบ เนื้อหา หัวข้อ การเข้ารหัส และอื่นๆ คุณสามารถติดตั้งไลบรารีผ่าน NuGet หรือ ดาวน์โหลด DLL ของมัน
PM> Install-Package Aspose.Email
สร้างไฟล์ EML จากศูนย์
เมื่อ API ของคุณถูกติดตั้งเรียบร้อยแล้ว ถึงเวลาที่จะสร้าง eml แรกของคุณจากศูนย์ หนึ่งในวิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้คลาส MailMessage จาก Aspose.Email คลาส MailMessage ช่วยให้คุณสร้างวัตถุข้อความอีเมลด้วยคุณสมบัติต่างๆ และวิธีการที่ให้คุณตั้งค่าผู้ส่ง ผู้รับ หัวข้อ เนื้อหา ไฟล์แนบ หัวข้อ และรายละเอียดอื่นๆ ของอีเมลของคุณ
ขั้นตอนต่อไปนี้และโค้ดตัวอย่างจะช่วยให้คุณสร้าง EML จากศูนย์:
- สร้างวัตถุ MailMessage ใหม่โดยใช้ตัวสร้างเริ่มต้น
- ตั้งค่าคุณสมบัติของวัตถุ MailMessage ตามความต้องการของคุณ
- บันทึกวัตถุ MailMessage ไปยังไฟล์ EML โดยใช้วิธีการ Save
// Create a new MailMessage object | |
var eml = new MailMessage() | |
{ | |
// Set the sender address | |
From = "sender@sender.com", | |
// Add a recipient address | |
To = "receiver@receiver.com", | |
// Set the subject | |
Subject = "New message", | |
// Set the HTML body | |
HtmlBody = @"<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;} | |
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal; | |
font-weight:normal;color:#000000;background-color:#ffffff;} | |
</style> | |
</head> | |
<body> | |
<h3>New message</h3> | |
<p>This is a new message created by Aspose.Email.</p> | |
</body> | |
</html>" | |
}; | |
// Save the MailMessage object to an EML file | |
eml.Save("message.eml", SaveOptions.DefaultEml); |
วิธีการ Save ของคลาส MailMessage ใช้พารามิเตอร์สองตัว: เส้นทางไฟล์และตัวเลือกการบันทึก ตัวเลือกการบันทึกระบุรูปแบบของไฟล์เอาต์พุต
เพิ่มภาพไปยังเนื้อหา HTML
ในการทำฟังก์ชันนี้ คุณต้องฝังภาพในเนื้อหา HTML คุณสามารถใช้แท็ก “img” เพื่อทำเช่นนี้
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มภาพไปยังเนื้อหา HTML ของข้อความ
- เนื้อหา HTML ประกอบด้วยแท็กภาพที่มีแอตทริบิวต์แหล่งข้อมูลตั้งค่าเป็น
cid:image1
- คลาส AlternateView ถูกใช้เพื่อรับมุมมองทางเลือกของเนื้อหาข้อความที่มีภาพฝังอยู่
- คลาส LinkedResource ถูกใช้เพื่อแสดงภาพที่ฝังอยู่และ ID เนื้อหาของมันตั้งค่าเป็น
image1
- ในที่สุด มุมมองทางเลือกจะถูกเพิ่มไปยังคอลเลกชันมุมมองทางเลือกของข้อความ
// Create a new instance of MailMessage class | |
var eml = new MailMessage | |
{ | |
// Set sender and recipient | |
From = new MailAddress("sender@domain.com"), | |
To = new MailAddress("recipient@domain.com"), | |
// Set subject and body | |
Subject = "New message with image", | |
HtmlBody = @"<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;} | |
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal; | |
font-weight:normal;color:#000000;background-color:#ffffff;} | |
</style> | |
</head> | |
<body> | |
<h3>New message</h3> | |
<p>This is a new message created by Aspose.Email.</p> | |
<img src='cid:myImage' /> | |
</body> | |
</html>" | |
}; | |
var alternateView = eml.AlternateViews.GetView(MediaTypeNames.Text.Html); | |
var imageResource = new LinkedResource(path + "image.png", MediaTypeNames.Image.Png) | |
{ | |
ContentId = "image1" | |
}; | |
alternateView.LinkedResources.Add(imageResource); | |
eml.Save("message_with_image.eml", SaveOptions.DefaultEml); |
สร้างไฟล์ EML จากไฟล์ HTML
วิธีหนึ่งในการทำเช่นนี้คือการเริ่มต้นด้วยไฟล์ HTML และแปลงมันเป็น EML สิ่งนี้อาจมีประโยชน์หากคุณมี HTML ที่คุณต้องการส่งเป็นข้อความอีเมล สำหรับวัตถุประสงค์นี้เราต้องมีเนื้อหา HTML ก่อน มาสร้างไฟล์นี้ว่า content.html
นี่คือตัวอย่างของมัน:
<!DOCTYPE html>
<html>
<head>
<title>อีเมลของฉัน</title>
</head>
<body>
<h1>สวัสดี,</h1>
<img src="logo.png" alt="โลโก้">
<p>นี่คืออีเมลแรกของฉันที่สร้างจาก HTML.</p>
</body>
</html>
นอกจากนี้ คุณต้องเตรียมภาพทั้งหมดที่มีอยู่ใน HTML และระบุเส้นทางที่ถูกต้องไปยังพวกเขาในไฟล์ HTML
ตอนนี้เราสามารถสร้าง MailMessage ได้โดยการตั้งค่าเนื้อหา HTML จาก content.html
- ก่อนอื่น สร้างวัตถุ HtmlLoadOptions ใหม่
- ตั้งค่าสตริงที่มีเส้นทางไปยังภาพใน PathToResources
- ตั้งค่าคุณสมบัติ ShouldAddPlainTextView เป็น true หาก EML ควรมี AlternateView ที่มีข้อความธรรมดา
- สร้างวัตถุ MailMessage โดยการโหลดไฟล์ HTML และส่งวัตถุ HtmlLoadOptions เป็นพารามิเตอร์
- ตั้งค่าคุณสมบัติข้อความเพิ่มเติม
- ในที่สุด บันทึกวัตถุ MailMessage ไปยังไฟล์ EML โดยใช้วิธีการ Save
var htmlloadOptions = new HtmlLoadOptions | |
{ | |
PathToResources = path, | |
ShouldAddPlainTextView = true | |
}; | |
var eml = MailMessage.Load(path + @"content.html", htmlloadOptions); | |
// Set sender and recipient | |
eml.From = new MailAddress("sender@domain.com"); | |
eml.To = new MailAddress("recipient@domain.com"); | |
// Set subject | |
eml.Subject = "New message from HTML"; | |
// Save the message in EML format | |
eml.Save("message_from_html.eml", SaveOptions.DefaultEml); |
เคล็ดลับในการปรับปรุงการแสดงผลของข้อความ HTML ใน Outlook
ในการดูข้อความ HTML ของคุณใน Outlook คุณต้องมั่นใจว่าโค้ดของมันเข้ากันได้กับเครื่องมือเรนเดอร์ของ Outlook ซึ่งแตกต่างจากเบราว์เซอร์เว็บส่วนใหญ่ ปัญหาทั่วไปบางประการที่อาจมีผลต่ออีเมล HTML ของคุณใน Outlook มีดังนี้:
- Outlook ไม่รองรับบางแท็กและคุณสมบัติ CSS เช่น รูปภาพพื้นหลัง ลอย ขอบ มาร์จิ้น การเติม ฯลฯ คุณอาจต้องใช้สไตล์แบบ inline ตาราง หรือความคิดเห็นเงื่อนไขเพื่อให้ได้เลย์เอาต์และรูปแบบที่ต้องการ
- Outlook อาจเพิ่มช่องว่างหรือบรรทัดเพิ่มเติมระหว่างองค์ประกอบหรือทำการลบบางองค์ประกอบโดยสิ้นเชิง คุณอาจต้องใช้ช่องว่างที่ไม่แตกหัก ช่องว่างที่มีความกว้างเป็นศูนย์ หรือเซลล์ตารางว่างเพื่อป้องกันสิ่งนี้
- Outlook อาจเปลี่ยนการเข้ารหัสหรือชุดตัวอักษรของไฟล์ HTML ของคุณ ซึ่งอาจทำให้ตัวอักษรบางตัวแสดงผลไม่ถูกต้อง คุณอาจต้องระบุการเข้ารหัสและชุดตัวอักษรในนั้นโดยใช้แท็กเมตา
สรุป
ในบล็อกโพสต์นี้ คุณได้เรียนรู้วิธีการสร้างข้อความ MIME โดยใช้โปรแกรมใน C# ด้วยการใช้ Aspose.Email คู่มือทีละขั้นตอนและตัวอย่างโค้ดได้แสดงวิธีการสร้างไฟล์ eml จากศูนย์และจากไฟล์ HTML เพิ่มภาพไปยังเนื้อหา HTML ของข้อความอีเมล และรองรับทั้งหมดที่กล่าวถึงด้วยเคล็ดลับที่มีประโยชน์เกี่ยวกับวิธีการปรับปรุงการแสดงผลของข้อความ HTML ของคุณใน Outlook
- คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Email for .NET และลองใช้งานฟรี
- คุณยังสามารถตรวจสอบฟีเจอร์และฟังก์ชันเพิ่มเติมของ Aspose.Email ใน เอกสาร
- ยินดีต้อนรับคำถามของคุณใน ฟอรัม