ในบล็อกนี้ คุณจะได้เรียนรู้วิธีสร้างข้อความอีเมล Outlook (รวมถึง MSG, EML, EMLX หรือ MHTML) ในภาษา C# นอกจากนี้ เราจะสาธิตวิธีส่งอีเมลแบบซิงโครนัสหรืออะซิงโครนัสโดยใช้ C# ใน .NET หรือ .NET Core

C# ส่งอีเมล Outlook

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

ความต้องการ 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

ดูสิ่งนี้ด้วย

เพิ่มและอัปเดตกฎกล่องจดหมายบน MS Exchange Server ใน C#เพิ่มและลบสมาชิกในรายการแจกจ่าย MS Exchange ในภาษา Javaส่งเอกสาร Word ในเนื้อหาอีเมลโดยใช้ C#
เพิ่มและอัปเดตกฎกล่องจดหมายบน MS Exchange Server ใน Javaเพิ่ม อัปเดต และลบผู้ติดต่อจาก Microsoft Exchange Server ใน C#เพิ่ม อัปเดต และลบรายชื่อติดต่อจาก Microsoft Exchange Server ใน Java
เพิ่มและลบสมาชิกในรายการแจกจ่าย MS Exchange ใน C#ส่งอีเมลผ่าน SMTP ใน Python