JavaMail API ব্যবহার করে ইমেইল পাঠানোর সময় আপনি Inline Attachments এবং External Attachments উভয় ধরনের অ্যাটাচমেন্ট পাঠাতে পারেন। যদিও উভয়ই ইমেইলে ফাইল যুক্ত করার জন্য ব্যবহৃত হয়, তাদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে।
Inline Attachments (ইনলাইন অ্যাটাচমেন্ট)
Inline Attachments হল এমন ফাইল যা ইমেইলের মূল কন্টেন্টের অংশ হিসেবে অন্তর্ভুক্ত হয়, এবং সাধারণত HTML কন্টেন্টে বা Image হিসেবে ইমেইলে প্রদর্শিত হয়। উদাহরণস্বরূপ, একটি ইমেইলে একটি ছবি সরাসরি ইমেইল বডির মধ্যে প্রদর্শিত হতে পারে, যেখানে ছবিটি মেইলের পাঠ্য অংশ হিসেবে অন্তর্ভুক্ত থাকে।
- এটি কিভাবে কাজ করে:
- Inline attachments সাধারণত ইমেইলের HTML কন্টেন্টের অংশ হিসেবে অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, একটি ছবির URL HTML ডকুমেন্টের মধ্যে
<img>ট্যাগের মাধ্যমে যুক্ত করা হয়। - Inline attachments সাধারণত
<img>বা অন্যান্য মিডিয়া ফরম্যাটে থাকে।
- Inline attachments সাধারণত ইমেইলের HTML কন্টেন্টের অংশ হিসেবে অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, একটি ছবির URL HTML ডকুমেন্টের মধ্যে
- ব্যবহার:
- HTML ইমেইল এ ছবি বা ভিডিও ইনলাইন দেখানো।
- এমবেডেড ফাইল যেমন লোগো বা সিগনেচার ইমেজ।
JavaMail API দিয়ে Inline Attachment পাঠানোর উদাহরণ:
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.*;
public class SendInlineEmail {
public static void main(String[] args) {
String host = "smtp.gmail.com";
final String user = "your-email@gmail.com";
final String password = "your-email-password";
String to = "recipient-email@example.com";
Properties properties = System.getProperties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Email with Inline Image");
// MIME part to include text and inline image
Multipart multipart = new MimeMultipart("related");
// Text part
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<h1>Hello!</h1><p>Here is an inline image: <img src=\"cid:image1\"></p>";
messageBodyPart.setContent(htmlText, "text/html");
// Attach image inline
MimeBodyPart imagePart = new MimeBodyPart();
DataSource fds = new FileDataSource("path/to/your/image.jpg");
imagePart.setDataHandler(new DataHandler(fds));
imagePart.setHeader("Content-ID", "<image1>");
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(imagePart);
// Set the email content
message.setContent(multipart);
// Send email
Transport.send(message);
System.out.println("Email with inline image sent successfully!");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
External Attachments (এক্সটার্নাল অ্যাটাচমেন্ট)
External Attachments হল ফাইল যা ইমেইলের সাথে সংযুক্ত থাকে তবে ইমেইল কন্টেন্টের অংশ নয়। ইমেইল পাঠানো হলে, এটি একটি আলাদা ফাইল হিসেবে প্রাপককে প্রেরণ করা হয়, এবং এটি সাধারণত ইমেইল বডির বাইরে থাকে। এটি সাধারণত যেকোনো ধরনের ফাইল হতে পারে, যেমন পিডিএফ, ডকুমেন্ট, জিপ ফাইল, ইমেজ ইত্যাদি।
- এটি কিভাবে কাজ করে:
- External attachment ইমেইলের মূল কন্টেন্টের বাইরে থাকে। প্রাপক ফাইলটি আলাদাভাবে ডাউনলোড বা ওপেন করতে পারে।
- ফাইলটি ইমেইলের অ্যাটাচমেন্ট হিসেবে অন্তর্ভুক্ত থাকে এবং ফাইলটি অ্যাটাচমেন্টে থাকা অবস্থায় প্রাপকের জন্য উপলব্ধ থাকে।
- ব্যবহার:
- পিডিএফ, অফিস ডকুমেন্ট, স্প্রেডশিট, বা অন্যান্য বড় ফাইল পাঠানো।
- ডকুমেন্ট বা রিপোর্ট এক্সটেনাল অ্যাটাচমেন্ট হিসেবে প্রেরণ করা।
JavaMail API দিয়ে External Attachment পাঠানোর উদাহরণ:
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.util.*;
public class SendEmailWithAttachment {
public static void main(String[] args) {
String host = "smtp.gmail.com";
final String user = "your-email@gmail.com";
final String password = "your-email-password";
String to = "recipient-email@example.com";
Properties properties = System.getProperties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", "587");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Email with External Attachment");
// MimeMultipart for message body and attachments
Multipart multipart = new MimeMultipart();
// Message part
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Please find the attached document.");
multipart.addBodyPart(messageBodyPart);
// Attachment part
MimeBodyPart attachmentPart = new MimeBodyPart();
String filename = "path/to/your/file.txt"; // Attach the file
FileDataSource source = new FileDataSource(filename);
attachmentPart.setDataHandler(new DataHandler(source));
attachmentPart.setFileName("file.txt");
multipart.addBodyPart(attachmentPart);
// Set the email content
message.setContent(multipart);
// Send email
Transport.send(message);
System.out.println("Email with attachment sent successfully!");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
Inline এবং External Attachments এর মধ্যে পার্থক্য:
| Feature | Inline Attachment | External Attachment |
|---|---|---|
| Usage | মূল কন্টেন্টের অংশ হিসেবে ইমেজ বা মিডিয়া উপাদান সংযুক্ত। | ফাইলটি আলাদাভাবে পাঠানো হয়, মূল ইমেইল কন্টেন্টের বাইরে। |
| How It Appears | ইমেইলের বডির মধ্যে প্রদর্শিত হয় (যেমন, ছবি) | ইমেইলে আলাদাভাবে অ্যাটাচমেন্ট হিসেবে প্রদর্শিত হয়। |
| Content Type | সাধারণত HTML ইমেইলে ইমেজ বা মিডিয়া (যেমন ছবি) | যেকোনো ফাইল টাইপ (পিডিএফ, ডকুমেন্ট, ইমেজ, জিপ ফাইল)। |
| Content ID | ব্যবহার করা হয় Content-ID হেডারের মাধ্যমে (যেমন <img> ট্যাগে)। | আলাদাভাবে ফাইলের নাম এবং টাইপ সহ সংযুক্ত থাকে। |
| Example | "<img src='cid:image1'> in HTML | পাঠানো ফাইলটি ডাউনলোড বা ওপেন করার জন্য আলাদা থাকে। |
সারাংশ:
- Inline Attachments সাধারণত ইমেইলের মধ্যে ইমেজ বা মিডিয়া ফাইল হিসেবে যুক্ত থাকে এবং এটি মূল কন্টেন্টের অংশ হিসেবে প্রদর্শিত হয়। এটি HTML ইমেইল কন্টেন্টের মধ্যে সন্নিবেশিত থাকে এবং প্রাপকের কাছে তা দৃশ্যমান হয়।
- External Attachments ফাইলগুলিকে ইমেইলের বাইরে অ্যাটাচমেন্ট হিসেবে পাঠানো হয়, যা আলাদাভাবে ডাউনলোড বা খুলে দেখা যায়।
JavaMail API এর মাধ্যমে আপনি উভয় ধরনের অ্যাটাচমেন্ট পাঠাতে পারেন, এবং এটি আপনাকে আপনার ইমেইল কন্টেন্ট এবং আঙ্গিকে বেশি নমনীয়তা প্রদান করে।
Read more