ในบล็อกนี้ คุณจะได้เรียนรู้วิธีสร้างข้อความอีเมล Outlook (รวมถึง MSG, EML, EMLX หรือ MHTML) ในภาษา C# นอกจากนี้ เราจะสาธิตวิธีส่งอีเมลแบบซิงโครนัสหรืออะซิงโครนัสโดยใช้ C# ใน .NET หรือ .NET Core
อีเมลได้กลายเป็นแหล่งหลักในการแลกเปลี่ยนข้อความและแชร์เนื้อหา เช่น เอกสาร รูปภาพ หรือไฟล์ประเภทอื่นๆ ความถี่ในการใช้อีเมลอยู่ในระบบออนไลน์มากขึ้นสำหรับการแชร์การแจ้งเตือนหรือเอกสารที่สำคัญกับหลายหน่วยงาน ในกรณีดังกล่าว การเตรียมเทมเพลตและส่งอีเมลไปยังผู้มีส่วนได้ส่วนเสียหลายคนด้วยตนเองอาจเป็นงานที่ใช้เวลานานและวุ่นวาย
ความต้องการ Email Automation Service ซึ่งคุณสามารถสร้างและส่งอีเมลได้อย่างราบรื่น ดังนั้นในบทความนี้ ฉันจะสอนวิธีสร้างข้อความอีเมลในรูปแบบ Outlook ยอดนิยม และทำให้กระบวนการส่งอีเมลโดยอัตโนมัติโดยทางโปรแกรม หลังจากอ่านบทความนี้แล้ว คุณจะสามารถ:
- สร้างและบันทึกข้อความอีเมลใน C#
- สร้างอีเมลด้วยเนื้อหา HTML ใน C#
- สร้างอีเมลด้วยการเข้ารหัสเฉพาะใน C#
- ส่งอีเมลพร้อมกันโดยใช้ SMTP ใน C#
- ส่งอีเมลแบบอะซิงโครนัสโดยใช้ SMTP ใน C#
- และส่งอีเมลจำนวนมากใน C#
C# API เพื่อสร้างและส่งอีเมล Outlook
เพื่อให้กระบวนการสร้างและส่งข้อความอีเมลเป็นไปโดยอัตโนมัติ เราจะใช้ Aspose.Email for .NET ซึ่งเป็น API การจัดการและประมวลผลอีเมลที่มีประสิทธิภาพ รองรับรูปแบบอีเมลยอดนิยมรวมถึงข้อความ MS Outlook เช่น MSG, EML/EMLX เป็นต้น คุณสามารถดาวน์โหลด DLL ของ API ได้โดยตรงหรือติดตั้งผ่าน NuGet Package Manager หรือ Package Manager Console ใน Visual Studio .
PM> Install-Package Aspose.Email
หลังจากที่คุณสร้างแอปพลิเคชัน C# (Console, ASP.NET และอื่นๆ) และติดตั้ง Aspose.Email สำหรับ .NET แล้ว คุณสามารถเริ่มสร้างและส่งอีเมลในภาษา C# ได้
สร้างอีเมล Outlook ใน C#
Aspose.Email จัดเตรียมคลาส MailMessage เพื่อสร้างหรือจัดการข้อความอีเมล Outlook คลาสนี้ให้คุณตั้งค่าคุณสมบัติทั้งหมดของข้อความอีเมล (หัวเรื่อง ถึง จาก และเนื้อความ) เพิ่มไฟล์แนบ และบันทึกข้อความในรูปแบบอีเมลต่างๆ เช่น EML, MSG, MHTML เป็นต้น ต่อไปนี้เป็นขั้นตอนในการสร้าง ข้อความอีเมล:
- สร้างอินสแตนซ์ของคลาส MailMessage
- ตั้งค่าคุณสมบัติของข้อความ
- บันทึกข้อความอีเมลโดยใช้เมธอด MailMessage.Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างและบันทึกข้อความอีเมลใน C#
// สร้างอินสแตนซ์ใหม่ของคลาส MailMessage
MailMessage message = new MailMessage();
// ตั้งหัวเรื่องของข้อความ เนื้อความ และข้อมูลผู้ส่ง
message.Subject = "New message created by Aspose.Email for .NET";
message.Body = "This is the body of the email.";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// เพิ่มไปยังผู้รับและผู้รับ CC
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// เพิ่มไฟล์แนบ
message.Attachments.Add(new Attachment("word.docx"));
// บันทึกข้อความในรูปแบบ EML, EMLX, MSG และ MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
message.Save("EmailMessage.emlx", SaveOptions.CreateSaveOptions(MailMessageSaveType.EmlxFormat));
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
message.Save("EmailMessage.mhtml", SaveOptions.DefaultMhtml);
สร้างอีเมล Outlook ด้วยเนื้อหา HTML ใน C
แท็ก HTML ใช้เพื่อทำให้เนื้อหาของอีเมลมีโครงสร้างมากขึ้น นำเสนอได้ และเสริมด้วยองค์ประกอบต่างๆ เช่น ตาราง รูปภาพ รายการ และอื่นๆ ในกรณีที่คุณต้องการสร้างอีเมลที่มีเนื้อความ HTML คุณสามารถใช้คุณสมบัติ MailMessage.HtmlBody ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างอีเมล Outlook ด้วยเนื้อหา HTML ใน C#
// สร้างอินสแตนซ์ใหม่ของคลาส MailMessage
MailMessage message = new MailMessage();
// ตั้งหัวเรื่องของข้อความ เนื้อความ Html และข้อมูลผู้ส่ง
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// เพิ่มไปยังผู้รับและผู้รับ CC
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// บันทึกข้อความในรูปแบบ EML/EMLX/MSG/MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
C# สร้างอีเมล Outlook ด้วยการเข้ารหัสเฉพาะ
คุณยังสามารถระบุมาตรฐานการเข้ารหัสที่คุณต้องการเพื่อบอกเบราว์เซอร์หรือแอปพลิเคชันอีเมลเกี่ยวกับวิธีตีความอักขระในเนื้อหาของอีเมล คุณสมบัติ MailMessage.BodyEncoding ใช้เพื่อจุดประสงค์นี้ ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตั้งค่าการเข้ารหัสเนื้อหาเมื่อสร้างอีเมล Outlook โดยใช้ C#
// สร้างอินสแตนซ์ใหม่ของคลาส MailMessage
MailMessage message = new MailMessage();
// กำหนดหัวเรื่องของข้อความ เนื้อความ Html ข้อมูลผู้ส่งและผู้รับ
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
// ระบุการเข้ารหัส
message.BodyEncoding = Encoding.ASCII;
// บันทึกข้อความในรูปแบบ EML/EMLX/MSG/MHTML
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
ส่งอีเมล Outlook แบบซิงโครนัสหรือแบบอะซิงโครนัสใน C#
ตอนนี้ เมื่อคุณสร้างข้อความอีเมลแล้ว คุณสามารถส่งไปยังผู้รับพร้อมกันหรืออะซิงโครนัสก็ได้ คลาส SmtpClient ช่วยให้คุณส่งข้อความอีเมล Outlook โดยใช้ SMTP (Simple Mail Transfer Protocol) ต่อไปนี้เป็นขั้นตอนในการส่งอีเมลใน C# โดยใช้ Aspose.Email สำหรับ .NET
- สร้างหรือโหลดข้อความอีเมลโดยใช้คลาส MailMessage
- สร้างอินสแตนซ์ของคลาส SmtpClient และตั้งค่าโฮสต์ ชื่อผู้ใช้ รหัสผ่าน และหมายเลขพอร์ต
- ส่งอีเมลแบบซิงโครนัสหรือแบบอะซิงโครนัสโดยใช้เมธอด SmtpClient.Send หรือ SmtpClient.SendAsync ตามลำดับ
ส่งอีเมล Outlook แบบซิงโครนัสใน C
// สร้างอินสแตนซ์ MailMessage คุณสามารถสร้างข้อความใหม่หรือโหลดไฟล์ข้อความที่สร้างไว้แล้ว (eml, msg, ฯลฯ)
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// สร้างอินสแตนซ์ของคลาส SmtpClient
SmtpClient client = new SmtpClient();
// ระบุโฮสต์การส่งจดหมาย ชื่อผู้ใช้ รหัสผ่าน พอร์ต # และตัวเลือกความปลอดภัย
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
// ส่งอีเมลนี้
client.Send(msg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
ส่งอีเมล Outlook แบบอะซิงโครนัสใน C#
// สร้างอินสแตนซ์ MailMessage คุณสามารถสร้างข้อความใหม่หรือโหลดไฟล์ข้อความที่สร้างไว้แล้ว (eml, msg, ฯลฯ)
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// สร้างอินสแตนซ์ของคลาส SmtpClient
SmtpClient client = new SmtpClient();
// ระบุโฮสต์การส่งจดหมาย ชื่อผู้ใช้ รหัสผ่าน พอร์ต # และตัวเลือกความปลอดภัย
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// ระบุโฮสต์การส่งจดหมาย ชื่อผู้ใช้ รหัสผ่าน พอร์ต # และตัวเลือกความปลอดภัย
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// ส่งข้อความ
client.SendAsync(msg);
Console.WriteLine("Sending message...");
msg.Dispose();
ส่งอีเมลจำนวนมากใน C#
คุณยังสามารถสร้างและส่งอีเมลจำนวนมากได้ คลาส MailMessageCollection ใช้เพื่อรวบรวมข้อความอีเมลที่คุณต้องการส่ง ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการส่งอีเมลจำนวนมากใน C#
// สร้าง SmtpClient และระบุเซิร์ฟเวอร์ พอร์ต ชื่อผู้ใช้ และรหัสผ่าน
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
// สร้างอินสแตนซ์ของคลาส MailMessage และระบุถึง จาก หัวเรื่อง และข้อความ
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");
// สร้างอินสแตนซ์ของ MailMessageCollection และเพิ่มข้อความอีเมลลงไป
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
try
{
// ส่งข้อความ
client.Send(manyMsg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
Aspose Email API สำหรับ C# - การสาธิตสด
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีสร้างอีเมล Outlook ใน C# นอกจากนี้ คุณได้เห็นวิธีการส่งอีเมลแบบซิงโครนัสหรือแบบอะซิงโครนัสจากภายในแอปพลิเคชัน .NET คุณสามารถสำรวจ เอกสารประกอบ ของ Aspose.Email สำหรับ .NET เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ API