JavaMail API ব্যবহার করে আপনি ইমেইলে inline image (অর্থাৎ ইমেইলের মধ্যে সন্নিবিষ্ট ইমেজ) যোগ করতে পারেন। এটি সাধারণত MimeBodyPart এবং MimeMultipart ক্লাসের মাধ্যমে করা হয়। Inline image যোগ করার জন্য ইমেজটি CID (Content-ID) সহ রেফারেন্স করতে হয় এবং সেটি HTML কন্টেন্টের মধ্যে ব্যবহার করতে হয়।
নিচে JavaMail API ব্যবহার করে ইমেইলে Inline Image যোগ করার একটি উদাহরণ দেওয়া হলো।
Inline Image যোগ করার উদাহরণ:
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.Properties;
import java.io.File;
public class SendEmailWithInlineImage {
public static void main(String[] args) {
// SMTP Server Properties
Properties properties = new Properties();
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true"); // TLS
// Gmail SMTP Authentication Details
String username = "your-email@gmail.com";
String password = "your-password";
// Session Setup
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create MimeMessage
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("your-email@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient-email@example.com"));
message.setSubject("Test Email with Inline Image");
// Create MimeBodyPart for text content
MimeBodyPart textPart = new MimeBodyPart();
String htmlContent = "<h1>Hello, this is a test email with inline image!</h1>"
+ "<img src='cid:image1'>";
textPart.setContent(htmlContent, "text/html");
// Create MimeBodyPart for the inline image
MimeBodyPart imagePart = new MimeBodyPart();
String imagePath = "path_to_your_image/image.jpg"; // Path to the image file
DataSource fds = new FileDataSource(new File(imagePath));
imagePart.setDataHandler(new DataHandler(fds));
imagePart.setHeader("Content-ID", "<image1>");
// Create MimeMultipart to combine the text and image
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(textPart); // Add text body part (HTML)
multipart.addBodyPart(imagePart); // Add image body part
// Set the content of the message to the multipart
message.setContent(multipart);
// Send the message
Transport.send(message);
System.out.println("Email with inline image sent successfully!");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
এখানে কী হচ্ছে?
- SMTP Properties: ইমেইল পাঠানোর জন্য SMTP সার্ভারের প্রোপার্টি সেট করা হয়েছে, যেমন smtp.gmail.com এবং TLS সক্রিয় করা হয়েছে।
- MimeBodyPart for Text: প্রথম
MimeBodyPartঅবজেক্ট তৈরি করা হয়েছে যাতে HTML কন্টেন্ট যোগ করা হয়েছে, যেখানে<img src='cid:image1'>ট্যাগের মাধ্যমে inline image রেফারেন্স করা হয়েছে। - MimeBodyPart for Inline Image: দ্বিতীয়
MimeBodyPartঅবজেক্ট তৈরি করা হয়েছে যেখানে ইমেজ ফাইল (যেমনimage.jpg) FileDataSource এবং DataHandler এর মাধ্যমে পাঠানো হয়েছে।Content-IDহেডার দিয়ে ইমেজের সনাক্তকারীcid:image1নির্ধারণ করা হয়েছে। - MimeMultipart: একাধিক MimeBodyPart (টেক্সট এবং ইমেজ) একত্রিত করতে
MimeMultipartব্যবহার করা হয়েছে, যাতে উভয়টি একসাথে পাঠানো যায়। - Transport.send(): ইমেইলটি পাঠানোর জন্য
Transport.send()মেথড ব্যবহার করা হয়েছে।
Important Points about Inline Image in Email:
Content-ID (CID): Inline image গুলি ইমেইল বার্তার HTML কন্টেন্টে Content-ID (CID) এর মাধ্যমে রেফারেন্স করা হয়। এটি ইমেইলের HTML অংশে সঠিকভাবে ইমেজ প্রদর্শন করার জন্য প্রয়োজন।
উদাহরণ:
<img src='cid:image1'>। এখানেimage1হলো Content-ID যা ইমেইল কন্টেন্টের HTML অংশে ব্যবহৃত হয়।- MIME Type: Inline ইমেজ পাঠানোর সময় সঠিক MIME টাইপ (যেমন
image/jpeg,image/png) নিশ্চিত করা উচিত, যাতে মেইল ক্লায়েন্ট সঠিকভাবে ইমেজটি ডিসপ্লে করতে পারে। - FileDataSource: Inline ইমেজ যুক্ত করার জন্য
FileDataSourceব্যবহার করা হয়, যা ইমেজ ফাইলের পাথ থেকে ডেটা সরবরাহ করে।
HTML ইমেইল এবং Inline Image পাঠানোর আরও সুবিধা:
- Rich Content: HTML ইমেইলের মাধ্যমে আপনি রিচ কন্টেন্ট (যেমন, টেবিল, বাটন, লিঙ্ক, এবং ইমেজ) পাঠাতে পারেন যা সাধারণ টেক্সট ইমেইল-এর চেয়ে আরও আকর্ষণীয় হয়।
- Responsive Design: Inline ইমেজ সহ HTML ইমেইল পাঠালে আপনি ইমেইল কন্টেন্টকে আরও সুন্দরভাবে প্রদর্শন করতে পারেন এবং রেসপন্সিভ ডিজাইন তৈরি করতে পারেন।
- User Engagement: Inline ইমেজ ব্যবহারের মাধ্যমে ইউজারদের জন্য ইমেইলটি আরও আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ করা যায়, যা মেসেজের প্রভাব বাড়ায়।
সারাংশ:
- MimeBodyPart ব্যবহার করে আপনি inline image ইমেইলে যোগ করতে পারেন।
- ইমেইলের HTML কন্টেন্টে
cid:মাধ্যমে ইমেজ রেফারেন্স করা হয় এবং ইমেজটিMimeBodyPartএর মাধ্যমে সংযুক্ত করা হয়। - MimeMultipart ব্যবহার করে একাধিক MimeBodyPart অংশ যেমন টেক্সট, HTML কন্টেন্ট এবং ইমেজ একত্রিত করা হয়।
JavaMail API ব্যবহার করে আপনি সহজেই রিচ কন্টেন্ট, অ্যাটাচমেন্ট এবং inline ইমেজসহ ইমেইল তৈরি করতে পারেন।
Read more