JavaMail API-তে Store এবং Folder ক্লাস দুটি অত্যন্ত গুরুত্বপূর্ণ উপাদান, যা ইমেইল সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়। এগুলি মেইল সার্ভারের সাথে ইন্টারঅ্যাক্ট করার জন্য এবং ইমেইল ডাউনলোড বা ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। Store ক্লাস ডাটাবেস বা সার্ভার (যেমন IMAP, POP3) থেকে ইমেইল মেসেজ অ্যাক্সেস করতে ব্যবহৃত হয় এবং Folder ক্লাস হল মেইলবক্সের একটি অংশ, যেমন ইনবক্স বা আউটবক্স যেখানে মেইল স্টোর করা হয়।
1. Store ক্লাস:
Store ক্লাস JavaMail API তে ব্যবহৃত হয় মেইল সার্ভার থেকে মেইল ফোল্ডার এবং মেসেজ প্রাপ্তির জন্য। এটি সারা পৃথিবীজুড়ে বিভিন্ন ধরনের মেইল স্টোরেজ ব্যবস্থা (IMAP, POP3, SMTP) এর সাথে ইন্টারঅ্যাক্ট করতে সক্ষম।
Store ক্লাসের ভূমিকা:
- Store একটি বিশেষ ধরনের সংযোগ, যা মেইল সার্ভার (IMAP/POP3) থেকে ডেটা আনতে ব্যবহৃত হয়।
- getStore() মেথড ব্যবহার করে এটি নির্দিষ্ট প্রোটোকলের মাধ্যমে মেইল স্টোরিং পরিষেবা অর্জন করতে সাহায্য করে (যেমন
imaps,pop3s,smtpপ্রোটোকল)। - Session ব্যবহার করে Store এর সাথে সংযোগ স্থাপন করা হয় এবং মেইল সার্ভারের মেইল ফোল্ডার অ্যাক্সেস করা হয়।
Store ক্লাস ব্যবহার করার উদাহরণ:
import javax.mail.*;
import java.util.Properties;
public class StoreExample {
public static void main(String[] args) {
// SMTP, IMAP, বা POP3 সার্ভারের প্রপার্টি
Properties properties = new Properties();
properties.put("mail.store.protocol", "imaps");
properties.put("mail.imaps.host", "imap.gmail.com");
properties.put("mail.imaps.port", "993");
try {
// JavaMail Session তৈরি
Session session = Session.getDefaultInstance(properties);
// Store অবজেক্ট তৈরি
Store store = session.getStore("imaps");
// Store সার্ভারের সাথে সংযোগ স্থাপন
store.connect("imap.gmail.com", "your-email@gmail.com", "your-password");
// Store-এর ফোল্ডার অ্যাক্সেস করা
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
System.out.println("Folder is open!");
// ফোল্ডার থেকে মেসেজগুলো অ্যাক্সেস করতে পারি
Message[] messages = folder.getMessages();
for (Message message : messages) {
System.out.println("Subject: " + message.getSubject());
}
// ফোল্ডার এবং Store বন্ধ করা
folder.close(false);
store.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে কী হচ্ছে?
- Store Connection:
session.getStore("imaps")দিয়েStoreঅবজেক্ট তৈরি করা হয় এবং IMAP প্রোটোকলের মাধ্যমে সংযোগ স্থাপন করা হয়। - Folder Access:
getFolder("INBOX")দিয়ে ইনবক্স ফোল্ডার অ্যাক্সেস করা হচ্ছে। - Store এবং Folder Close: ফোল্ডার ব্যবহারের পর সেটি বন্ধ করা হয় এবং শেষে
store.close()দিয়ে সংযোগটি বন্ধ করা হয়।
2. Folder ক্লাস:
Folder ক্লাস JavaMail API-তে মেইল স্টোরেজের অংশ (যেমন ইনবক্স, আউটবক্স, ড্রাফট, সেন্ড) এর প্রতিনিধিত্ব করে। এটি Store এর সাথে যুক্ত থাকে এবং মেইল ফোল্ডারের মধ্যে মেইল মেসেজগুলির পরিচালনা করার জন্য ব্যবহৃত হয়।
Folder ক্লাসের ভূমিকা:
- Folder ক্লাস মেইল সার্ভারের একটি ফোল্ডারের প্রতিনিধিত্ব করে, যেমন Inbox, Sent, Drafts, ইত্যাদি।
- এটি ব্যবহারকারীর মেইলবক্সের ভিতরে মেইল মেসেজ অ্যাক্সেস এবং পরিচালনা করতে ব্যবহৃত হয়।
- এটি READ_ONLY বা READ_WRITE মোডে খোলা যেতে পারে, যার মাধ্যমে আপনি মেসেজ পড়তে বা সম্পাদনা করতে পারবেন।
Folder ক্লাস ব্যবহার করার উদাহরণ:
import javax.mail.*;
import java.util.Properties;
public class FolderExample {
public static void main(String[] args) {
// SMTP, IMAP, বা POP3 সার্ভারের প্রপার্টি
Properties properties = new Properties();
properties.put("mail.store.protocol", "imaps");
properties.put("mail.imaps.host", "imap.gmail.com");
properties.put("mail.imaps.port", "993");
try {
// JavaMail Session তৈরি
Session session = Session.getDefaultInstance(properties);
// Store অবজেক্ট তৈরি
Store store = session.getStore("imaps");
// Store সার্ভারের সাথে সংযোগ স্থাপন
store.connect("imap.gmail.com", "your-email@gmail.com", "your-password");
// Folder অবজেক্ট তৈরি (এখানে "INBOX" ফোল্ডার অ্যাক্সেস)
Folder folder = store.getFolder("INBOX");
// Folder খোলা (READ_ONLY মোডে)
folder.open(Folder.READ_ONLY);
System.out.println("Folder is open!");
// মেসেজগুলো রিড করা
Message[] messages = folder.getMessages();
for (Message message : messages) {
System.out.println("Subject: " + message.getSubject());
}
// Folder বন্ধ করা
folder.close(false);
store.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে কী হচ্ছে?
- Folder Access:
store.getFolder("INBOX")ব্যবহার করে আপনি ইনবক্স ফোল্ডারটি অ্যাক্সেস করছেন। - Folder Mode:
folder.open(Folder.READ_ONLY)ব্যবহার করে ইনবক্স ফোল্ডারটি শুধুমাত্র পড়ার জন্য খোলা হয়েছে। - Message Retrieval:
folder.getMessages()ব্যবহার করে ফোল্ডারের সমস্ত মেসেজ নেয়া হচ্ছে।
Store এবং Folder ক্লাসের মধ্যে সম্পর্ক:
- Store হল সার্ভারের সাথে সংযোগ স্থাপনের জন্য এবং ডেটাবেসের Folder-এ অ্যাক্সেস করার জন্য ব্যবহার করা হয়।
- Folder হল মেইল স্টোরেজের একটি অংশ (যেমন ইনবক্স বা আউটবক্স), যা Store এর অধীনে থাকে এবং মেইল মেসেজ গুলিকে ধারণ করে।
Store এবং Folder ক্লাসের বৈশিষ্ট্য:
- Store Class:
- getStore(): নির্দিষ্ট প্রোটোকল (IMAP/POP3/SMTP) এর জন্য স্টোর সংযোগ পেতে ব্যবহৃত হয়।
- connect(): স্টোরে সংযোগ স্থাপন করা।
- getFolder(): মেইল ফোল্ডার পেতে ব্যবহৃত হয় (যেমন Inbox, Sent Items, Drafts ইত্যাদি)।
- close(): সংযোগ বন্ধ করা।
- Folder Class:
- open(): ফোল্ডারটি খোলার জন্য ব্যবহৃত হয়। এটি READ_ONLY অথবা READ_WRITE মোডে খোলা যেতে পারে।
- getMessages(): ফোল্ডারে থাকা মেইল মেসেজ গুলি আনা।
- close(): ফোল্ডার বন্ধ করার জন্য ব্যবহৃত হয়।
সারাংশ:
Store এবং Folder JavaMail API-তে ইমেইল মেসেজ সংগ্রহ, পরিচালনা এবং মেইল সার্ভারের সাথে যোগাযোগ করার জন্য ব্যবহৃত হয়। Store ক্লাস ডাটাবেস বা সার্ভারের সাথে সংযোগ স্থাপন করে এবং Folder ক্লাসটি ফোল্ডারের মধ্যে মেইল মেসেজ অ্যাক্সেস ও পরিচালনা করার জন্য ব্যবহৃত হয়। JavaMail API ব্যবহার করে আপনি ইমেইল সার্ভারের বিভিন্ন ফোল্ডার থেকে ডাটা রিট্রিভ করতে এবং ম্যানেজ করতে পারবেন।
Read more