Create MIME messages using Java

เมื่อส่งอีเมล คุณอาจต้องการรวมเนื้อหาหลายสื่อ เช่น รูปภาพ เสียง หรือวิดีโอ เพื่อทำให้ข้อความของคุณน่าสนใจและมีประสิทธิภาพมากขึ้น เพื่อให้บรรลุเป้าหมายนี้ บล็อกโพสต์ของเรามีคำแนะนำง่ายๆ ในการสร้างข้อความ MIME (Multipurpose Internet Mail Extensions) เราจะสำรวจวิธีการสร้างไฟล์ EML พร้อมรูปภาพในเนื้อหา HTML โดยใช้ Java เราจะอธิบายขั้นตอนที่เกี่ยวข้องในกระบวนการและให้โค้ดตัวอย่างเพื่อช่วยให้คุณเริ่มต้น ดังนั้น ไม่ว่าคุณจะเป็นนักพัฒนา Java หรือคนที่สนใจเรียนรู้เกี่ยวกับการสร้างไฟล์ EML พร้อมรูปภาพ โพสต์นี้เหมาะสำหรับคุณ!

Java API to Create MIME Messages

ในการสร้างข้อความ MIME โดยอัตโนมัติใน Java คุณจะต้องติดตั้ง Aspose.Email for Java ในโปรเจ็กต์ของคุณ ไลบรารีนี้เป็นเครื่องมือที่มีประสิทธิภาพสำหรับนักพัฒนา Java ที่มีฟีเจอร์หลากหลายสำหรับการทำงานกับข้อความอีเมล ช่วยให้นักพัฒนาสามารถจัดการกับแง่มุมต่างๆ ของข้อความ MIME ได้อย่างง่ายดาย เช่น ไฟล์แนบ เนื้อหา หัวเรื่อง การเข้ารหัส และอื่นๆ ด้วย Aspose.Email for Java นักพัฒนาสามารถสร้างและปรับแต่งข้อความ MIME ได้อย่างง่ายดาย มอบวิธีการที่เรียบง่ายและมีประสิทธิภาพในการส่งอีเมลที่มีเนื้อหาและหลายสื่อ

ในการรับ API คุณสามารถ ดาวน์โหลด หรือ ติดตั้ง จากที่เก็บข้อมูลของเรา

Create an EML File from Scratch

ตอนนี้ที่คุณได้ติดตั้ง Aspose.Email for Java แล้ว ถึงเวลาสร้างไฟล์ EML แรกของคุณจากศูนย์ หนึ่งในวิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้คลาส MailMessage ที่ไลบรารีจัดหาให้ คลาส MailMessage ช่วยให้คุณสร้างวัตถุข้อความอีเมลพร้อมด้วยคุณสมบัติต่างๆ และวิธีการที่ช่วยให้คุณตั้งค่ารายละเอียด เช่น ผู้ส่ง ผู้รับ หัวเรื่อง เนื้อหา ไฟล์แนบ หัวเรื่อง และอื่นๆ ด้วยคลาส MailMessage คุณสามารถปรับแต่งข้อความอีเมลของคุณให้ตรงตามความต้องการและสร้างไฟล์ EML ที่ดูเป็นมืออาชีพซึ่งพร้อมที่จะส่งไปยังผู้รับของคุณ

ขั้นตอนต่อไปนี้และโค้ดตัวอย่างจะช่วยคุณสร้าง EML จากศูนย์:

  • สร้างวัตถุ MailMessage ใหม่โดยใช้ตัวสร้างเริ่มต้น
  • ตั้งค่าคุณสมบัติของวัตถุ MailMessage ตามความต้องการของคุณ
  • บันทึกวัตถุ MailMessage ลงในไฟล์ EML โดยใช้วิธี save
// Create a new MailMessage object
MailMessage eml = new MailMessage();
// Set the sender address
eml.setFrom(new MailAddress("sender@domain.com"));
// Add a recipient address
eml.setTo(MailAddressCollection.to_MailAddressCollection(new MailAddress("recipient@domain.com")));
// Set subject
eml.setSubject("New message");
// Set the HTML body
eml.setHtmlBody("<!DOCTYPE html>\n"
+ " <html>\n"
+ " <head>\n"
+ " <style>\n"
+ " h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}\n"
+ " p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;\n"
+ " font-weight:normal;color:#000000;background-color:#ffffff;}\n"
+ " </style>\n"
+ " </head>\n"
+ " <body>\n"
+ " <h3>New message</h3>\n"
+ " <p>This is a new message created by Aspose.Email.</p>\n"
+ " </body>\n"
+ " </html>");
// Save the MailMessage object to an EML file
eml.save("message_with_image.eml", SaveOptions.getDefaultEml());

วิธี save ของคลาส MailMessage รับพารามิเตอร์สองตัว: เส้นทางไฟล์และตัวเลือกการบันทึก ตัวเลือกการบันทึกจะกำหนดรูปแบบของไฟล์ที่ออก

Add an Image to the HTML Content

เพื่อเพิ่มรูปภาพลงในเนื้อหา HTML ของข้อความอีเมล คุณจะต้องฝังรูปภาพโดยใช้แท็ก “img” สิ่งนี้ช่วยให้คุณแทรกรูปภาพโดยตรงลงในโค้ด HTML ของข้อความของคุณ เพื่อให้จะแสดงเมื่อเปิดอีเมลโดยผู้รับ

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มรูปภาพลงในเนื้อหา HTML ของข้อความ

  • เนื้อหา HTML มีแท็กรูปภาพพร้อมแอตทริบิวต์แหล่งที่ตั้งที่ตั้งค่าเป็น cid:image1
  • คลาส AlternateView ถูกใช้เพื่อให้มุมมองทางเลือกของเนื้อหาข้อความที่มีรูปภาพที่ฝังอยู่
  • คลาส LinkedResource ถูกใช้เพื่อแสดงถึงรูปภาพที่ฝังอยู่และ ID เนื้อหาของมันตั้งค่าเป็น image1
  • สุดท้าย มุมมองทางเลือกจะถูกเพิ่มไปยังคอลเลกชันมุมมองทางเลือกของข้อความ
// Create a new instance of MailMessage class
MailMessage eml = new MailMessage();
// Set sender and recipient
eml.setFrom(new MailAddress("sender@domain.com"));
eml.setTo(MailAddressCollection.to_MailAddressCollection(new MailAddress("recipient@domain.com")));
// Set subject and body
eml.setSubject("New message with image");
eml.setHtmlBody("<!DOCTYPE html>\n"
+ " <html>\n"
+ " <head>\n"
+ " <style>\n"
+ " h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}\n"
+ " p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;\n"
+ " font-weight:normal;color:#000000;background-color:#ffffff;}\n"
+ " </style>\n"
+ " </head>\n"
+ " <body>\n"
+ " <h3>New message</h3>\n"
+ " <p>This is a new message created by Aspose.Email.</p>\n"
+ " <img src='cid:myImage' />\n"
+ " </body>\n"
+ " </html>");
AlternateView alternateView = eml.getAlternateViews().get_Item(0);
LinkedResource imageResource = new LinkedResource(path + "image.png", MediaTypeNames.Image.PNG);
imageResource.setContentId("image1");
alternateView.getLinkedResources().addItem(imageResource);
eml.save("message_with_image.eml", SaveOptions.getDefaultEml());

Create an EML File from an HTML File

อีกวิธีหนึ่งในการทำเช่นนี้คือการเริ่มต้นด้วยไฟล์ 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
HtmlLoadOptions htmlloadOptions = new HtmlLoadOptions();
htmlloadOptions.setPathToResources(path);
htmlloadOptions.shouldAddPlainTextView(true);
var eml = MailMessage.load(path + "content.html", htmlloadOptions);
// Set sender and recipient
eml.setFrom(new MailAddress("sender@domain.com"));
eml.setTo(MailAddressCollection.to_MailAddressCollection(new MailAddress("recipient@domain.com")));
// Set subject
eml.setSubject("New message from HTML");
// Save the message in EML format
eml.save("message_from_html.eml", SaveOptions.getDefaultEml());

Tips for Improving the View of the HTML Message in Outlook

เพื่อดูข้อความ HTML ของคุณใน Outlook คุณต้องแน่ใจว่าโค้ดของมันเข้ากันได้กับเครื่องยนต์การเรนเดอร์ของ Outlook ซึ่งแตกต่างจากเว็บเบราว์เซอร์ส่วนใหญ่ ปัญหาทั่วไปบางประการที่อาจส่งผลกระทบต่ออีเมล HTML ของคุณใน Outlook ได้แก่:

  • Outlook ไม่รองรับแท็กบางตัวและคุณสมบัติ CSS เช่น รูปภาพพื้นหลัง ลอย ขอบ ขอบใน ฯลฯ คุณอาจต้องใช้สไตล์ในบรรทัด ตาราง หรือความคิดเห็นเงื่อนไขเพื่อให้ได้รูปแบบและการจัดเรียงที่ต้องการ
  • Outlook อาจเพิ่มช่องว่างหรือบรรทัดเพิ่มเติมระหว่างองค์ประกอบหรือเอาองค์ประกอบบางตัวออกโดยสิ้นเชิง คุณอาจต้องใช้ช่องว่างที่ไม่สามารถแบ่งได้ ช่องว่างที่มีความกว้างเป็นศูนย์ หรือเซลล์ตารางว่างเพื่อป้องกันปัญหานี้
  • Outlook อาจเปลี่ยนการเข้ารหัสหรือชุดตัวอักษรของไฟล์ HTML ของคุณ ซึ่งอาจทำให้ตัวอักษรบางตัวแสดงผลไม่ถูกต้อง คุณอาจต้องระบุการเข้ารหัสและชุดตัวอักษรในไฟล์นั้นโดยใช้แท็ก meta

Conclusion

ในบล็อกโพสต์นี้ คุณได้เรียนรู้วิธีการสร้างข้อความ MIME โดยอัตโนมัติใน Java โดยใช้ Aspose.Email บทเรียนทีละขั้นตอนและตัวอย่างโค้ดได้แสดงวิธีการสร้างไฟล์ EML จากศูนย์และจากไฟล์ HTML เพิ่มรูปภาพลงในเนื้อหา HTML ของข้อความอีเมล และสนับสนุนทั้งหมดด้านบนด้วยคำแนะนำที่เป็นประโยชน์เกี่ยวกับวิธีการปรับปรุงการดูข้อความ HTML ของคุณใน Outlook

  • คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Email for Java และลองใช้งานฟรี
  • คุณยังสามารถตรวจสอบฟีเจอร์และฟังก์ชันการทำงานเพิ่มเติมของ Aspose.Email ใน เอกสาร
  • ยินดีต้อนรับคำถามของคุณใน ฟอรัม

See Also