Inline Images হল এমন চিত্র (images) যা ইমেইল বার্তায় অভ্যন্তরীণভাবে সন্নিবেশিত থাকে, অর্থাৎ, ছবিটি ইমেইলের শরীরের অংশ হিসেবে উপস্থিত থাকে এবং প্রাপকের ইনবক্সে ইমেইলটি খুললে ছবিটি স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়। সাধারণত এই ছবিগুলি Content-ID (cid) দ্বারা চিহ্নিত করা হয় এবং HTML কন্টেন্টের অংশ হিসেবে ইমেইলে ইমেজ প্রদর্শিত হয়।
JavaMail API এর মাধ্যমে Inline Images পাঠানোর জন্য আপনাকে ইমেইলটি multipart/related হিসাবে তৈরি করতে হয়, যেখানে চিত্র এবং অন্যান্য কন্টেন্ট একসাথে পাঠানো হয়। এটি একটি বিশেষ ধরনের MIME (Multipurpose Internet Mail Extensions) টাইপ যা একাধিক মিডিয়া ফরম্যাট (যেমন টেক্সট, ছবি, অডিও) ধারণ করতে পারে।
Inline Images এর প্রয়োজনীয়তা:
- HTML ইমেইল এর আরও আকর্ষণীয়তা: Inline images ব্যবহার করে আপনি ইমেইলের মধ্যে ছবি যুক্ত করতে পারেন, যা পাঠককে আরও আকর্ষণীয় এবং ইন্টারেক্টিভ ইমেইল অভিজ্ঞতা প্রদান করে।
- ব্র্যান্ডিং: ব্র্যান্ডিং এবং মার্কেটিং ক্যাম্পেইনে ইমেইলে লোগো, প্রমোশনাল ছবি বা ব্যানার অন্তর্ভুক্ত করা খুবই সাধারণ।
- অ্যাচিভমেন্ট এবং রিপোর্ট: Inline images ব্যবহার করে আপনি ইনফোগ্রাফিক্স, রিপোর্ট বা গ্রাফিক্যাল ডাটা তুলে ধরতে পারেন, যা ব্যবহারকারীদের জন্য আরও বোঝা সহজ হয়।
- ফরম্যাটিং এবং ডিজাইন: HTML কন্টেন্ট সহ Inline images ইমেইলের গঠন এবং ডিজাইনকে আরও সুন্দর এবং প্রফেশনাল করে তোলে।
JavaMail API তে Inline Images পাঠানোর উদাহরণ
JavaMail API ব্যবহার করে Inline Images পাঠানোর জন্য, আপনাকে MIME কন্টেন্ট টাইপ multipart/related ব্যবহার করতে হবে। এর মাধ্যমে চিত্র এবং অন্যান্য কন্টেন্ট একসাথে পাঠানো হয়, যাতে চিত্রটি সঠিকভাবে ইমেইলের মধ্যে প্রদর্শিত হয়। নিচে Inline images সহ ইমেইল পাঠানোর উদাহরণ দেওয়া হলো:
Inline Image সহ ইমেইল পাঠানোর উদাহরণ (JavaMail API)
import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
import java.util.Properties;
public class SendEmailWithInlineImage {
public static void main(String[] args) {
// SMTP সার্ভার কনফিগারেশন
String host = "smtp.gmail.com"; // Gmail SMTP সার্ভার
String port = "587"; // SMTP পোর্ট (TLS)
String from = "your-email@gmail.com"; // প্রেরকের ইমেইল
String password = "your-email-password"; // আপনার ইমেইল পাসওয়ার্ড
String to = "recipient@example.com"; // প্রাপকের ইমেইল
// ইমেইলের বিষয় এবং HTML কন্টেন্ট
String subject = "Email with Inline Image Example";
String htmlContent = "<html><body><h1>Hello, World!</h1>"
+ "<p>This is a test email with an <b>inline image</b>.</p>"
+ "<img src='cid:image1' alt='Inline Image'/>" // Inline image using cid
+ "</body></html>";
// SMTP প্রপার্টি কনফিগার করা
Properties properties = new Properties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true"); // TLS এনক্রিপশন
// সেশন তৈরি করা
Session session = Session.getInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password); // প্রমাণীকরণ
}
});
try {
// MimeMessage তৈরি করা
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from)); // প্রেরকের ইমেইল
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // প্রাপকের ইমেইল
message.setSubject(subject); // ইমেইলের বিষয়
// মেইল কন্টেন্ট সেট করা
MimeMultipart multipart = new MimeMultipart("related");
// HTML কন্টেন্ট অংশ
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(htmlContent, "text/html");
multipart.addBodyPart(htmlPart);
// Inline ইমেজ অংশ
MimeBodyPart imagePart = new MimeBodyPart();
File imageFile = new File("path_to_your_image.jpg"); // চিত্রের ফাইল পাথ
imagePart.attachFile(imageFile); // চিত্রটি অ্যাটাচ করা
imagePart.setContentID("<image1>"); // Content-ID সেট করা
imagePart.setDisposition(MimeBodyPart.INLINE); // INLINE ডিসপোজিশন
multipart.addBodyPart(imagePart);
// মেইলে কন্টেন্ট যোগ করা
message.setContent(multipart);
// ইমেইল পাঠানো
Transport.send(message);
System.out.println("HTML Email with Inline Image Sent Successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে কী হচ্ছে?
- HTML কন্টেন্ট: HTML কন্টেন্ট
cid:image1ব্যবহার করে inline ইমেজ সন্নিবেশিত হচ্ছে।cid:image1: এটি চিত্রের Content-ID যা ইমেইলের HTML অংশে ইমেজের সোর্স হিসেবে কাজ করে।
- MimeMultipart ("related"):
relatedটাইপ ব্যবহার করা হচ্ছে, যা HTML কন্টেন্ট এবং inline images একত্রে পাঠানোর জন্য ব্যবহৃত হয়। - Inline Image: Inline images পাঠানোর জন্য:
- attachFile(imageFile): চিত্র ফাইলটি সংযুক্ত করা।
- setContentID(""): ইমেইল কন্টেন্টে ইমেজের
cidআইডি সেট করা। - setDisposition(MimeBodyPart.INLINE): Inline ডিসপোজিশন সেট করা যাতে চিত্রটি ইমেইলের মধ্যে অন্তর্ভুক্ত হয়ে দেখানো যায়।
Inline Images পাঠানোর সুবিধা:
- কনভেনিয়েন্স: Inline images সহ ইমেইল পাঠানোর ফলে প্রাপকের জন্য তা আরও আকর্ষণীয় হয়, কারণ ইমেইলটি মেল বাক্সে খোলার পরই ইমেজগুলো দেখানো হয়।
- প্রফেশনাল ইমেইল: ব্যবসায়িক ইমেইল, মার্কেটিং ইমেইল, প্রমোশনাল ইমেইল ইত্যাদিতে চিত্র সহ পাঠানো প্রয়োজনীয় হয়ে দাঁড়ায়।
- ব্র্যান্ডিং: inline images দিয়ে আপনি ব্র্যান্ডিং উপকরণ (যেমন লোগো, ব্যানার) পাঠাতে পারেন।
- ফরম্যাটিং: HTML ইমেইলে inline images প্রেরণ করে আপনি ইমেইলের ডিজাইন এবং ফরম্যাটিং আরও আকর্ষণীয় করতে পারেন।
সারাংশ:
JavaMail API ব্যবহার করে inline images সহ ইমেইল পাঠানো সম্ভব এবং এটি ইমেইল কন্টেন্টের অভ্যন্তরে চিত্রসহ পাঠানোর জন্য cid (Content-ID) ব্যবহার করা হয়। এই পদ্ধতি আপনাকে ইমেইলে আকর্ষণীয় উপাদান (যেমন ব্র্যান্ডিং ইমেজ, লোগো বা প্রমোশনাল ছবি) অন্তর্ভুক্ত করার সুযোগ দেয়। MimeMultipart("related") এর মাধ্যমে HTML কন্টেন্ট এবং inline images একসাথে পাঠানো হয়, যা ইমেইলের প্রাপকের কাছে সঠিকভাবে প্রদর্শিত হয়।
Read more