การสร้างและตั้งค่าเนื้อหาอีเมล
สร้างข้อความอีเมลใหม่
Aspose.Email สำหรับ Java ช่วยให้ผู้พัฒนาสามารถสร้างข้อความ MIME (Multipurpose Internet Mail Extensions) ตั้งแต่ต้น คลาสหลักสำหรับวัตถุประสงค์นี้ใน API ของ Aspose.Email สำหรับ Java คือ MailMessage คลาส หัวข้อนี้อธิบายขั้นตอนที่จำเป็นในการสร้างข้อความอีเมลในรูปแบบไฟล์ EML, MSG และ MTH โดยใช้ Aspose.Email สำหรับ Java.
เพื่อสร้างข้อความอีเมลตั้งแต่ต้น:
- สร้างอินสแตนซ์ของคลาส MailMessage.
- ตั้งค่าหัวเรื่องของข้อความโดยใช้ setSubject() เมธอด.
- ตั้งค่าพื้นข้อความของข้อความโดยใช้ setHtmlBody() เมธอด.
- ตั้งค่าผู้ส่งอีเมลโดยใช้ setFrom() เมธอด.
- ตั้งค่าผู้รับในช่อง TO ด้วยการใช้ getTo().add() เมธอด.
- ตั้งค่าผู้รับในช่อง CC ด้วยการใช้ getCC().add() เมธอด.
- เรียกใช้ Save() วิธีการบันทึกไฟล์ข้อความลงดิสก์ในรูปแบบ MSG, EML, และ MHT.
การระบุผู้รับหลายคน
นี้ 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 จะไม่ปรากฏ ซึ่งใช้เพื่อการแจ้งเตือนแบบซ่อน.
เพื่อระบุที่อยู่อีเมลหลายรายการในข้อความอีเมล ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส MailMessage.
- ระบุที่อยู่ From และที่อยู่ To, Cc และ Bcc หลายรายการโดยใช้อินสแตนซ์ MailMessage.
- สร้างอินสแตนซ์ของคลาส 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 สามารถระบุเนื้อหาอีเมลโดยใช้ setHtmlBody เมธอดใน MailMessage.
นอกจากนี้ ยังมี HtmlBody, Aspose.Email มีเมธอดอื่นที่เกี่ยวข้องกับเนื้อหาเมล:
- isBodyHtml: บอกผู้ใช้ว่าตัวเนื้อหาเป็น HTML หรือข้อความธรรมดา.
หัวข้อนี้แสดงวิธีกำหนดข้อความ HTML body และตั้งค่าข้อความสำรอง.
การตั้งค่า HTML Body
HtmlBody ใช้เพื่อระบุเนื้อหา HTML ของส่วน본문ของข้อความ HtmlBody ต้องถูกครอบด้วยแท็ก ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตั้งค่า HTML Body.
การตั้งค่าข้อความสำรอง
ใช้ AlternateView คลาสเพื่อระบุสำเนาของข้อความอีเมลในรูปแบบที่แตกต่างกัน ตัวอย่างเช่น หากคุณส่งข้อความในรูปแบบ HTML คุณอาจต้องการจัดเตรียมเวอร์ชันข้อความธรรมดาด้วยในกรณีที่ผู้รับบางคนใช้โปรแกรมอ่านเมลที่ไม่สามารถแสดงเนื้อหา HTML ได้ คลาสนี้มีสองคุณสมบัติ, LinkedResources และ BaseUri, ซึ่งใช้เพื่อแก้ไข URL ภายในเนื้อหาอีเมล.
- LinkedResources คือคอลเลกชันของอ็อบเจ็กต์ LinkedResources เมื่อทำการแสดงผล URL ภายในเนื้อหาอีเมลจะถูกจับคู่กับ URL ใน Content Link ของแต่ละอ็อบเจ็กต์ในคอลเลกชัน LinkedResources ก่อนแล้วจึงแก้ไข.
- BaseUri ถูกใช้โดยโปรแกรมอ่านเมลเพื่อแก้ไข URL เชิงสัมพันธ์ภายในเนื้อหา รวมถึงแก้ไข URL ของ Content Link เชิงสัมพันธ์ในคอลเลกชัน LinkedResources.
โค้ดสแน็ปต่อไปนี้แสดงวิธีตั้งค่าข้อความสำรอง.
การระบุการเข้ารหัสเนื้อหาเมล
Content Type กำหนดรูปแบบเนื้อหาอีเมล: ชุดอักขระ ตัวอย่างเช่น ชุดอักขระที่พบบ่อยบางชุดที่มีใน java.nio.Charset คือ:
- US-ASCII - ASCII 7 บิต, หรือที่เรียกว่า ISO646-US, หรือบล็อก Latin พื้นฐานของชุดอักขระ Unicode
- ISO-8859-1 - ตัวอักษรละติน ISO หมายเลข 1, หรือที่รู้จักในชื่อ ISO-LATIN-1
- UTF-8 - รูปแบบการแปลง UCS 8 บิต
- UTF-16BE - รูปแบบการแปลง UCS 16 บิต, ลำดับไบต์แบบ big-endian
- UTF-16LE - รูปแบบการแปลง UCS 16 บิต, ลำดับไบต์แบบ little-endian
- UTF-16 - รูปแบบการแปลง UCS 16 บิต, ลำดับไบต์ระบุโดยเครื่องหมายลำดับไบต์ (Byte Order Mark) ที่เป็นตัวเลือก
Aspose.Email ใช้ BodyEncoding คุณสมบัติของคลาส MailMessage เพื่อระบุการเข้ารหัสเนื้อหาอีเมล เพื่อเข้ารหัสเนื้อหาของข้อความอีเมล ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส MailMessage.
- ระบุผู้ส่ง ผู้รับ และเนื้อหา HTML ของอีเมลในอินสแตนซ์ MailMessage.
- ระบุค่าคุณสมบัติ BodyEncoding.
- สร้างอินสแตนซ์ของ SmtpClient คลาสและส่งอีเมลโดยใช้เมธอด Send.
คุณสมบัติของ MailMessage
นี้ MailMessage คลาส แสดงเนื้อหาของข้อความอีเมล อินสแตนซ์ของคลาส MailMessage ใช้สร้างข้อความอีเมลที่ส่งไปยังเซิร์ฟเวอร์ SMTP เพื่อจัดส่งโดยใช้ SmtpClient คลาส บทความนี้แสดงวิธีใช้ฟีเจอร์ยูทิลิตี้ของคลาส MailMessage เพื่อควบคุมฟีเจอร์อีเมลต่อไปนี้:
- วันที่และเวลา - ผ่านคลาส MailMessage setDate เมธอดที่เราตั้งค่าวันที่และเวลาของอีเมล.
- ความสำคัญของข้อความ - MailPriority คลาสระบุระดับความสำคัญสำหรับการส่งข้อความอีเมล สามารถเป็นระดับต่ำ ปกติ หรือสูง ความสำคัญมีผลต่อความเร็วในการส่งและการจัดส่ง.
- ความละเอียดของข้อความ - MailSensitivity คลาสระบุระดับความละเอียดอ่อนไหวห้าระดับ.
- การแจ้งเตือนการจัดส่ง - การแจ้งเตือนการจัดส่งทำให้ผู้ส่งทราบว่าอีเมลที่ส่งไปแล้วได้ถูกส่งถึงกล่องข้อความของผู้รับแล้ว.
โดยค่าเริ่มต้น วันที่จะเป็นวันที่จริงที่ข้อความถูกส่งและเวลาเป็นเวลาที่ส่ง แสดงโดย Microsoft Outlook อย่างไรก็ตาม เวลาจัดส่งอีเมลที่แท้จริงจะถูกเพิ่มโดยเซิร์ฟเวอร์ SMTP ในส่วนหัวเมล ตัวอย่างต่อไปนี้เป็นส่วนหัวเมลทั่วไปที่ฟิลด์ Date ถูกตั้งค่าด้วย MailMessage.setDate.
โค้ดสแน็ปด้านล่างแสดงวิธีใช้แต่ละฟีเจอร์ที่อธิบายข้างต้น.
การขอการรับทราบการอ่าน
ตัวอย่างโปรแกรมด้านล่างแสดงวิธีการขอการรับทราบการอ่าน. คลาส MailMessage DeliveryNotificationOptions คุณสมบัติ Enumeration อธิบาย ตัวเลือกการแจ้งการจัดส่ง สำหรับอีเมล เพื่อขอการรับทราบการอ่านหลังจากส่งอีเมล ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส MailMessage.
- ระบุผู้ส่ง ผู้รับ และเนื้อหา HTML ของอีเมลในอินสแตนซ์ MailMessage.
- ระบุ DeliveryNotificationOptions ในอินสแตนซ์ MailMessage อื่น ๆ.
- สร้างอินสแตนซ์ของคลาส SmtpClient และส่งอีเมลโดยใช้เมธอด Send.
คำขอใบรับรู้อ่านอาจไม่ได้รับการยอมรับเสมอ เพราะ:
- ไคลเอนต์เมลอาจไม่ได้ทำงานฟังก์ชันนั้น.
- ผู้ใช้ปลายทางอาจปิดการทำงานฟังก์ชันนั้น.
- ผู้ใช้ปลายทางอาจเลือกที่จะไม่ส่งใบรับรู้.
โค้ดสแน็ปต่อไปนี้แสดงวิธีขอใบรับรู้อ่าน.
ตั้งค่าส่วนหัวอีเมล
ส่วนหัวของอีเมลเป็นมาตรฐานอินเทอร์เน็ตและ RFC กำหนดฟิลด์ส่วนหัวที่รวมอยู่ในข้อความอีเมลบนอินเทอร์เน็ต สามารถระบุส่วนหัวอีเมลได้โดยใช้ MailMessage คลาส ชนิดส่วนหัวทั่วไปถูกกำหนดใน HeaderType คลาส เป็นคลาสที่ sealed และทำงานคล้าย enumeration ปกติ
โดยปกติส่วนหัวของอีเมลจะประกอบด้วยฟิลด์เหล่านี้:
- 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 หากคอลเลกชันมีส่วนหัวที่มีชื่อเดียวกัน ส่วนหัวนี้จะถูกแทรกก่อนส่วนหัวอื่น ๆ ที่ชื่อเดียวกัน ด้านล่างเป็นลายเซ็นของเมธอด Insert และตัวอย่างโค้ดการใช้งาน
Method Signature
HeaderCollection.insert(String name, String value)
การเพิ่มส่วนหัวที่กำหนดเองในอีเมล
ตัวอย่างโปรแกรมด้านล่างแสดงวิธีระบุส่วนหัวที่กำหนดเองในข้อความอีเมล สามารถระบุส่วนหัวอีเมลโดยใช้คลาส MailMessage เพื่อตั้งค่าส่วนหัวที่กำหนดเองในข้อความอีเมล โปรดทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส MailMessage.
- ระบุค่าของ to, from และ subject โดยใช้อินสแตนซ์ของ MailMessage
- เพิ่มส่วนหัวลับเข้าไปในอินสแตนซ์ของ MailMessage
- สร้างอินสแตนซ์ของคลาส SmtpClient และส่งอีเมลโดยใช้เมธอด Send.
โค้ดส่วนต่อไปนี้แสดงวิธีเพิ่มส่วนหัวที่กำหนดเองในอีเมล
ลงลายเซ็นอีเมลด้วย DKIM
Aspose.Email รองรับการลงลายเซ็นอีเมลด้วย DKIM (DomainKeys Identified Mail) ซึ่งทำให้องค์กรรับผิดชอบต่อข้อความที่กำลังถูกส่งผ่าน (เกี่ยวกับ DKIM). DKIM เพิ่มลายเซ็นดิจิทัลให้กับส่วนหัวของข้อความอีเมลซึ่งผู้รับสามารถตรวจสอบได้ คีย์สาธารณะของผู้ส่งทำให้ผู้รับสามารถตรวจสอบว่าลายเซ็นตรงกับเนื้อหาข้อความ คลาส MailMessage dKIMSign เมธอดนี้ใช้ตั้งค่าข้อมูลการเข้ารหัสและลายเซ็นสำหรับการลงนามข้อความ โค้ดส่วนต่อไปนี้แสดงวิธีลงนามอีเมลด้วย DKIM
การทำ Mail Merge
Mail merge ช่วยให้คุณสร้างและส่งอีเมลหลายฉบับที่คล้ายกัน เนื้อหาหลักของอีเมลจะเหมือนกัน แต่เนื้อหาสามารถปรับให้เป็นส่วนบุคคลได้ โดยทั่วไปรายละเอียดติดต่อของผู้รับ (ชื่อ, นามสกุล, บริษัท ฯลฯ) จะใช้เพื่อปรับเนื้อหาอีเมล
|
| | :- | |รูปภาพ: ตัวอย่างการทำงานของ mail merge|
เพื่อทำการรวมจดหมายด้วย Aspose.Email ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างฟังก์ชันด้วยชื่อ signature
- สร้างอินสแตนซ์ของ MailMessage คลาส.
- ระบุผู้ส่ง ผู้รับ เรื่องและข้อความเนื้อหา
- สร้างลายเซ็นสำหรับส่วนท้ายของอีเมล
- สร้างอินสแตนซ์ของ TemplateRoutine คลาสและส่งต่อให้ MailMessage อินสแตนซ์
- รับลายเซ็นใน TemplateRoutine อินสแตนซ์
- สร้างอินสแตนซ์ของ DataTable คลาส.
- เพิ่มคอลัมน์ Receipt, FirstName และ LastName เป็นแหล่งข้อมูลในคลาส DataTable
- สร้างอินสแตนซ์ของ DataRow คลาส
- ระบุที่อยู่รับใบเสร็จ ชื่อและนามสกุลในอ็อบเจ็กต์ DataRow
- สร้างอินสแตนซ์ของ MailMessageCollection คลาส
- ระบุ TemplateRoutine และอินสแตนซ์ DataTable ใน MailMessageCollection อินสแตนซ์
- สร้างอินสแตนซ์ของ SmtpClient คลาสและระบุเซิร์ฟเวอร์ พอร์ท ชื่อผู้ใช้และรหัสผ่าน
- ส่งอีเมลโดยใช้ SmtpClient เมธอด class BulkSendAsync
โค้ดด้านล่างส่งอีเมลถึงคนหนึ่งจากสามคนอื่น