การสร้างและตั้งค่าเนื้อหาอีเมล

สร้างข้อความอีเมลใหม่

คลาส MailMessage แสดงถึงข้อความอีเมลและให้ผู้พัฒนาสร้างข้อความอีเมลใหม่ คุณสมบัติพื้นฐานของอีเมลเช่น From, To, Subject และ body สามารถแนบได้ง่ายกับเมลใหม่ที่สร้าง นอกจากนี้เรายังสามารถบันทึกเมลในรูปแบบต่าง ๆ เช่น EML, MSG และ MHTML.

  • สร้างอินสแตนซ์ของคลาส MailMessage.
  • ตั้งค่าคุณสมบัติของข้อความเมล
  • บันทึกข้อความเมลในรูปแบบต่างๆ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างอีเมลใหม่ด้วยคุณสมบัติต่างๆ

การระบุผู้รับหลายคน

MailMessage แสดงถึงข้อความอีเมล อินสแตนซ์ของคลาส MailMessage ใช้สร้างข้อความอีเมลที่ส่งไปยังเซิร์ฟเวอร์ SMTP โดยใช้คลาส SmtpClient หัวข้อนี้แสดงวิธีระบุหลายที่อยู่อีเมล ที่อยู่อีเมลสามารถระบุได้โดยใช้คลาส MailMessage ที่อยู่อีเมลที่ใช้ในคลาส MailMessage มีดังนี้:

  • To - สามารถระบุที่อยู่อีเมลของผู้รับในช่อง ‘To’ ผู้รับในช่อง ‘To’ คือผู้รับหลักของข้อความ สามารถมีที่อยู่ผู้รับได้มากกว่าหนึ่งรายการ
  • Cc - CC ย่อมาจาก "carbon copy" หรือ "courtesy copy" และช่วยให้คุณเพิ่มผู้รับอีเมลที่ต้องการเห็นอีเมลแต่ไม่จำเป็นต้องดำเนินการใด ๆ ตัวอย่างเช่นผู้จัดการหรือสมาชิกทีมที่ต้องรับทราบการสนทนา ด้วย Aspose.Email คุณสามารถระบุที่อยู่ CC ในโค้ดของคุณได้ วิธีนี้ทำให้เมลอัตโนมัติหรือเมลทั้งหมดที่ส่งถึงที่อยู่วิเศษสามารถคัดลอกไปยังบุคคลที่เกี่ยวข้องได้.
  • Bcc - Bcc (Blind Carbon Copy) ช่วยให้คุณส่งอีเมลถึงผู้รับที่ซ่อนไว้จากผู้รับคนอื่น ๆ ที่เห็นในส่วน CC จะปรากฏในข้อมูลอีเมลที่ผู้รับหลักเห็น ส่วน Bcc จะไม่ปรากฏ ซึ่งใช้เพื่อการแจ้งเตือนแบบซ่อน. 

เพื่อระบุที่อยู่อีเมลหลายรายการในข้อความอีเมล ให้ทำตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของคลาส MailMessage.
  2. ระบุที่อยู่ From และที่อยู่ To, Cc และ Bcc หลายรายการโดยใช้อินสแตนซ์ MailMessage.
  3. สร้างอินสแตนซ์ของคลาส SmtpClient และส่งอีเมลโดยใช้เมธอด Send.

ตัวอย่างโค้ดด้านล่างแสดงวิธีระบุที่อยู่อีเมล To, CC และ BCC หลายรายการ.

การเปลี่ยนที่อยู่อีเมลเป็นชื่อที่เป็นมิตร

ตัวอย่างโปรแกรมด้านล่างแสดงวิธีเปลี่ยนที่อยู่อีเมลให้เป็นชื่อที่เป็นมิตรมากขึ้นในข้อความอีเมล ชื่อที่เป็นมิตรก็คือชื่อที่อ่านง่ายกว่าอีเมล เช่น John Smith แทน js346@domain.com เมื่อส่งอีเมล เราสามารถผูกชื่อที่เป็นมิตรกับที่อยู่อีเมลในคอนสตรัคเตอร์ของคลาส MailMessage.

เพื่อเปลี่ยนที่อยู่อีเมลเป็นชื่อที่เป็นมิตรในข้อความอีเมล ให้ทำตามขั้นตอนต่อไปนี้:

  • สร้างอินสแตนซ์ของคลาส MailMessage และระบุที่อยู่อีเมลในช่อง To และ From พร้อมชื่อที่เป็นมิตร.
  • ระบุที่อยู่อีเมล Cc และ Bcc พร้อมชื่อที่เป็นมิตรโดยเรียกคอนสตรัคเตอร์ของคลาส MailMessage ในอินสแตนซ์ MailMessage.
  • สร้างอินสแตนซ์ของคลาส SmtpClient และส่งอีเมลโดยใช้เมธอด Send.

โค้ดสแน็ปต่อไปนี้แสดงวิธีแสดงชื่อสำหรับที่อยู่อีเมล.

ตั้งค่า Mail Body

คลาส MailMessage แสดงถึงข้อความอีเมล อินสแตนซ์ของคลาส MailMessage ใช้สร้างข้อความอีเมลที่จะส่งไปยังเซิร์ฟเวอร์ SMTP เพื่อจัดส่งโดยใช้คลาส SmtpClient สามารถระบุส่วนข้อความได้โดยใช้คลาส MailMessage อีเมลสามารถมีหลายส่วนข้อความ มีสองประเภทของส่วนข้อความในคลาส MailMessage:

  • HTML body
  • ข้อความธรรมดา

นอกจากนี้ HtmlBody และ TextBody แล้ว Aspose.Email ยังมีคุณสมบัติแบบอ่านอย่างเดียวอีกสองอย่างที่เกี่ยวกับส่วนข้อความ:

  • IsBodyText: บอกว่าภาคข้อความเป็นข้อความเท่านั้น
  • IsBodyHtml: บอกว่าภาคข้อความเป็น HTML หรือข้อความธรรมดา

บทความนี้แสดงวิธีกำหนดข้อความธรรมดาหรือ HTML body, ตั้งค่าข้อความสำรองและเข้ารหัสส่วนเนื้อหาอีเมล.

การตั้งค่า HTML Body

HtmlBody ใช้ระบุเนื้อหา HTML ของส่วนข้อความ ต้องอยู่ระหว่างแท็ก โค้ดตัวอย่างต่อไปนี้แสดงวิธีการตั้งค่า HTML body.

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

ใช้คลาส AlternateView เพื่อระบุสำเนาของข้อความอีเมลในรูปแบบต่าง ๆ ตัวอย่างเช่น หากคุณส่งข้อความเป็น HTML คุณอาจต้องการให้เวอร์ชันข้อความธรรมดาด้วย ในกรณีที่ผู้รับบางคนใช้โปรแกรมอ่านอีเมลที่ไม่รองรับ HTML คลาสนี้มีสองคุณสมบัติคือ LinkedResources และ BaseUri ที่ใช้ในการแก้ URL ภายในเนื้อหาอีเมล.

  • LinkedResources เป็นคอลเลกชันของอ็อบเจกต์ LinkedResources. เมื่อทำการแสดงผล, URL ภายในเนื้อหาอีเมลจะถูกจับคู่กับ URL ใน Content Link ของแต่ละอ็อบเจกต์ LinkedResources ในคอลเลกชันและทำการแก้ไข.
  • BaseUri ถูกใช้โดยโปรแกรมอ่านเมลเพื่อแก้ไข URL เชิงสัมพันธ์ภายในเนื้อหา รวมถึงแก้ไข URL ของ Content Link เชิงสัมพันธ์ในคอลเลกชัน LinkedResources.

โค้ดสแน็ปต่อไปนี้แสดงวิธีตั้งค่าข้อความสำรอง.

คุณสมบัติของ MailMessage

นี้ MailMessage class แทนเนื้อหาของข้อความอีเมล ตัวอย่างของ MailMessage class ถูกใช้เพื่อสร้างข้อความอีเมลที่ส่งไปยังเซิร์ฟเวอร์ SMTP เพื่อการจัดส่งโดยใช้ SmtpClient class. บทความนี้แสดงวิธีการใช้ MailMessage คุณสมบัติ class utility สำหรับควบคุมคุณสมบัติอีเมลต่อไปนี้:

  • Date and time - ผ่าน MailMessage คุณสมบัติ class Date ใช้เพื่อรับหรือกำหนดวันที่และเวลาของอีเมล
  • ความสำคัญของข้อความMailPriority คลาสระบุระดับความสำคัญสำหรับการส่งข้อความอีเมล สามารถเป็นระดับต่ำ ปกติ หรือสูง ความสำคัญมีผลต่อความเร็วในการส่งและการจัดส่ง.
  • ความละเอียดของข้อความMailSensitivity คลาสระบุระดับความละเอียดอ่อนไหวห้าระดับ.
  • การแจ้งเตือนการจัดส่ง - การแจ้งเตือนการจัดส่งทำให้ผู้ส่งทราบว่าอีเมลที่ส่งไปแล้วได้ถูกส่งถึงกล่องข้อความของผู้รับแล้ว.

โดยค่าเริ่มต้น วันที่จะเป็นวันที่จริงที่ข้อความถูกส่ง และเวลาจะเป็นเวลาที่ส่ง ซึ่งแสดงโดย Microsoft Outlook อย่างไรก็ตาม เวลาจัดส่งอีเมลจริงจะถูกเพิ่มโดยเซิร์ฟเวอร์ SMTP เองในส่วนหัวของเมล ตัวอย่างเช่นด้านล่างเป็นส่วนหัวของเมลที่พบบ่อย ซึ่งฟิลด์ Date จะกำหนดค่าวันที่

โค้ดสแน็ปด้านล่างแสดงวิธีใช้แต่ละฟีเจอร์ที่อธิบายข้างต้น.

การขอการรับทราบการอ่าน

ตัวอย่างโค้ดด้านล่างแสดงให้คุณเห็นวิธีการขอใบรับรองการอ่าน. The MailMessage คลาส DeliveryNotificationOptions คุณสมบัติ Enumeration อธิบายตัวเลือกการแจ้งเตือนการจัดส่งสำหรับอีเมล เพื่อขอใบรับรองการอ่านหลังจากส่งอีเมล ให้ทำตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของ MailMessage คลาส.
  2. ระบุผู้ส่ง, ผู้รับและส่วนเนื้อหา HTML สำหรับอีเมลใน MailMessage อินสแตนซ์
  3. ระบุ DeliveryNotificationOptions ในอื่นๆ MailMessage อินสแตนซ์.
  4. สร้างอินสแตนซ์ของ SmtpClient คลาสและส่งอีเมลโดยใช้เมธอด Send.

คำขอใบรับรู้อ่านอาจไม่ได้รับการยอมรับเสมอ เพราะ:

  • ไคลเอนต์เมลอาจไม่ได้ทำงานฟังก์ชันนั้น.
  • ผู้ใช้ปลายทางอาจปิดการทำงานฟังก์ชันนั้น.
  • ผู้ใช้ปลายทางอาจเลือกที่จะไม่ส่งใบรับรู้.

โค้ดสแน็ปต่อไปนี้แสดงวิธีขอใบรับรู้อ่าน.

ตั้งค่าส่วนหัวอีเมล

ส่วนหัวของอีเมลเป็นมาตรฐานอินเทอร์เน็ตและ RFC กำหนดฟิลด์ส่วนหัวที่รวมอยู่ในข้อความอีเมลบนอินเทอร์เน็ต. ส่วนหัวอีเมลสามารถระบุได้โดยใช้คลาส MailMessage. ชนิดส่วนหัวทั่วไปถูกกำหนดในคลาส HeaderType. เป็นคลาสที่ sealed ทำงานเหมือน enum ปกติ.

โดยปกติส่วนหัวของอีเมลจะประกอบด้วยฟิลด์เหล่านี้:

  • To: ที่อยู่อีเมลผู้รับสามารถระบุในฟิลด์ To ผู้รับในฟิลด์ To เป็นกลุ่มเป้าหมายหลักของข้อความ สามารถระบุที่อยู่อีเมลผู้รับได้มากกว่าหนึ่งที่อยู่.
  • From: ฟิลด์นี้แสดงที่อยู่อีเมลของผู้ส่งข้อความ
  • Cc: อนุญาตให้ผู้ใช้ส่งข้อความเป็น "Carbon Copy" หรือ "Courtesy Copy" ซึ่งผู้รับไม่จำเป็นต้องตอบหรือดำเนินการ โดยทั่วไปผู้บังคับบัญชาจะได้รับการแจ้งด้วย CC
  • Bcc: ย่อมาจาก Blind Carbon Copy หมายถึงการส่งข้อความไปยังผู้รับหลายคนโดยที่ผู้รับแต่ละคนไม่เห็นรายชื่อผู้รับทั้งหมด ใช้สำหรับการแจ้งซ่อนไว้
  • ReplyTo: ฟิลด์ส่วนหัวนี้มีไว้เพื่อระบุว่าผู้ส่งต้องการให้การตอบกลับส่งไปที่ไหน
  • Subject: ชื่อเรื่อง, หัวเรื่อง, เรื่อง. มักใช้เป็นตัวบ่งชี้เธรดสำหรับข้อความที่ตอบหรือแสดงความคิดเห็นต่อข้อความอื่น
  • Date: ส่วนหัวนี้ระบุวันที่ (และเวลา) โดยปกติจะเป็นวันที่ข้อความถูกเขียนและส่ง
  • XMailer: ข้อมูลเกี่ยวกับซอฟต์แวร์ไคลเอนต์ของผู้ส่ง ตัวอย่าง: X-Mailer: Aspose.Email XMailer ถูกใช้โดยไคลเอนต์อีเมล ไคลเอนต์อีเมลต่าง ๆ จะมีค่า XMailer ที่แตกต่างกัน ค่า XMailer ของ MS Outlook คือ Microsoft Office Outlook, Build 11.0.5510 จะถูกละเลยโดยผู้รับอีเมลหรือโปรแกรมอ่านอีเมล

โดยปกติ ส่วนหัวของอีเมลจะมีลักษณะเช่นนี้:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

เพื่อปรับแต่งส่วนหัวของอีเมล ให้ทำตามขั้นตอนต่อไปนี้:

  • สร้างอินสแตนซ์ของ MailMessage คลาส.
  • ระบุ To, From, CC, Bcc, ReplyTo, Subject, Date และ XMailer ด้วยอินสแตนซ์ของ MailMessage.
  • สร้างอินสแตนซ์ของ MimeHeader คลาสและระบุส่วนหัวลับ
  • เพิ่มส่วนหัวลับเข้าไปใน MailMessage อินสแตนซ์

โค้ดตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าหัวข้ออีเมล.

โค้ดตัวอย่างข้างบนจะสร้างส่วนหัวของอีเมลในรูปแบบต่อไปนี้. สามารถสังเกตได้โดยเปิดไฟล์ผลลัพธ์ "MsgHeaders.msg" ใน Microsoft Outlook แล้วดูคุณสมบัติ.


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

แทรกส่วนหัวในตำแหน่งที่ต้องการ

นี้ Add เมธอดของ HeadersCollection คลาสนี้แทรกส่วนหัวที่ส่วนท้ายของคอลเลกชัน. อย่างไรก็ตาม บางครั้งอาจจำเป็นต้องแทรกส่วนหัวในตำแหน่งเฉพาะ. ในกรณีเช่นนั้น, Add เมธอดนี้จะไม่เป็นประโยชน์. เพื่อทำให้สำเร็จ, ใช้ Insert เมธอดของ HeadersCollection. หากคอลเลกชันมีหัวข้อที่ชื่อเดียวกัน หัวข้อนี้จะถูกแทรกก่อนหัวข้ออื่นที่มีชื่อเดียวกัน โค้ดตัวอย่างต่อไปนี้แสดงวิธีการแทรกหัวข้อในตำแหน่งที่กำหนด.

การเพิ่มส่วนหัวที่กำหนดเองในอีเมล

ตัวอย่างโปรแกรมด้านล่างแสดงวิธีระบุตัวหัวข้อที่กำหนดเองในข้อความอีเมล สามารถระบุตัวหัวข้ออีเมลได้โดยใช้ MailMessage คลาส เพื่อระบุตัวหัวข้อที่กำหนดเองในข้อความอีเมล โปรดทำตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของ MailMessage คลาส.
  2. ระบุค่าของ to, from และ subject โดยใช้อินสแตนซ์ของ MailMessage
  3. เพิ่มหัวข้อลับเข้าไปใน MailMessage อินสแตนซ์
  4. สร้างอินสแตนซ์ของคลาส SmtpClient และส่งอีเมลโดยใช้เมธอด Send.

โค้ดส่วนต่อไปนี้แสดงวิธีเพิ่มส่วนหัวที่กำหนดเองในอีเมล