Java Technologies Email Read এবং Process করা গাইড ও নোট

277

JavaMail API ব্যবহার করে আপনি ইমেইল পাঠানো ছাড়াও ইমেইল পড়া এবং প্রক্রিয়া করা (process) করতে পারেন। এই কাজের জন্য Store এবং Folder ক্লাস ব্যবহার করা হয়। এই ক্লাসগুলো Mail Store এবং Mail Folder-এর মতো কাজ করে এবং ইমেইল রিট্রিভ করার জন্য প্রয়োজনীয় তথ্য সংগ্রহ ও প্রক্রিয়া করে।

JavaMail API: Store এবং Folder ক্লাসের ভূমিকা

  1. Store Class:
    • Store ক্লাস JavaMail API এর অংশ যা ইমেইল সার্ভারের সাথে যোগাযোগ স্থাপন করে।
    • এটি মেইল স্টোরের সাথে সংযোগ স্থাপন এবং মেইল ফোল্ডারের উপর কাজ করার জন্য ব্যবহৃত হয়। এটি মূলত IMAP, POP3 প্রোটোকল ব্যবহার করে মেইল সার্ভারের সাথে ইন্টারঅ্যাক্ট করে।
  2. Folder Class:
    • Folder ক্লাস হল একটি মেইল ফোল্ডার, যেখানে মেইল সংরক্ষিত থাকে (যেমন ইনবক্স, সেন্ট ফোল্ডার, আউটবক্স ইত্যাদি)।
    • Folder ক্লাসের মাধ্যমে আপনি মেইলবক্সের মেইলগুলি অ্যাক্সেস, মেইল পড়া, এবং সেগুলি পরিচালনা করতে পারেন।

JavaMail API ব্যবহার করে ইমেইল পড়া এবং প্রক্রিয়া করা

এখানে IMAP প্রোটোকল ব্যবহার করে ইমেইল পড়ার একটি উদাহরণ দেওয়া হচ্ছে। আপনি POP3 বা IMAP-এর মধ্যে যে কোনো একটি প্রোটোকল ব্যবহার করতে পারেন ইমেইল রিট্রিভ করার জন্য।

IMAP ব্যবহার করে ইমেইল পড়া (Store এবং Folder ক্লাস)

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;

public class ReadEmailExample {

    public static void main(String[] args) {
        // ইমেইল সার্ভারের প্রপার্টিজ
        String host = "imap.gmail.com";
        String username = "your-email@gmail.com";
        String password = "your-password";

        // প্রপার্টিজ সেট করা
        Properties properties = new Properties();
        properties.put("mail.store.protocol", "imaps");
        properties.put("mail.imaps.host", host);
        properties.put("mail.imaps.port", "993");

        try {
            // সেশন তৈরি
            Session session = Session.getDefaultInstance(properties);

            // Store (Mail Box) খুলুন
            Store store = session.getStore("imaps");
            store.connect(host, username, password);

            // Inbox Folder থেকে মেইলস আনা
            Folder folder = store.getFolder("INBOX");
            folder.open(Folder.READ_ONLY); // শুধু পড়ার জন্য খুলুন

            // মেইল বার্তা গুলি নিয়ে আসা
            Message[] messages = folder.getMessages();

            // মেইলগুলোকে প্রক্রিয়া করা
            for (Message message : messages) {
                System.out.println("Subject: " + message.getSubject());
                System.out.println("From: " + Arrays.toString(message.getFrom()));
                System.out.println("Date: " + message.getSentDate());
                System.out.println("Content: " + message.getContent());
                System.out.println("--------------------------------------------------");
            }

            folder.close(false); // ফোল্ডার বন্ধ করা
            store.close(); // Store বন্ধ করা

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

এখানে কী হচ্ছে?

  1. Session: একটি Session অবজেক্ট তৈরি করা হয়েছে যা ডাটাবেস থেকে মেইলগুলো রিট্রিভ করার জন্য IMAPS প্রোটোকল ব্যবহার করবে।
  2. Store: store অবজেক্ট ব্যবহার করে ইমেইল সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে এবং INBOX ফোল্ডারটি অ্যাক্সেস করা হয়েছে।
  3. Folder: Folder ক্লাস ব্যবহার করে INBOX ফোল্ডারটি খোলা হয়েছে যাতে সেখানকার মেইলগুলো অ্যাক্সেস করা যায়। এখানে READ_ONLY মোড ব্যবহার করা হয়েছে যাতে মেইলগুলো শুধুমাত্র পড়া যায়, পরিবর্তন করা যাবে না।
  4. Message: Message অবজেক্টের মাধ্যমে মেইলটি পড়ে তার বিষয়, প্রেরক, তারিখ এবং কন্টেন্ট (ইমেইলের শরীর) প্রিন্ট করা হচ্ছে।

Folder ক্লাসের ব্যবহার:

Folder ক্লাস JavaMail API-তে একটি ফোল্ডার রেপ্রেজেন্ট করে যা বিভিন্ন মেইল ধারণ করে। কিছু গুরুত্বপূর্ণ ফোল্ডার অপারেশন:

  • open(Folder.READ_ONLY): ফোল্ডারটি কেবল পড়ার জন্য খুলে।
  • open(Folder.READ_WRITE): ফোল্ডারটি পড়া এবং লেখার জন্য খুলে।
  • getMessages(): ফোল্ডারের সমস্ত মেইল (মেসেজ) রিটার্ন করে।
  • close(): ফোল্ডার বন্ধ করে দেয়।

Store ক্লাসের ব্যবহার:

Store ক্লাস JavaMail API তে Mail Store এর সাথে যোগাযোগ স্থাপন করে। এটি সাধারণত IMAP বা POP3 প্রোটোকল ব্যবহার করে ইমেইল সার্ভারের সাথে সংযোগ স্থাপন করে।

  • connect(): সার্ভারের সাথে সংযোগ স্থাপন করে।
  • getStore(): একটি নির্দিষ্ট প্রোটোকল (যেমন IMAPS) এর জন্য স্টোর রিটার্ন করে।

MimeMessage এর মাধ্যমে Email Processing:

JavaMail API ব্যবহার করে আপনি MimeMessage ব্যবহার করে ইমেইল রিট্রিভ এবং প্রক্রিয়া করতে পারেন, যাতে আপনি মেসেজের অংশ যেমন পাঠ্য, অ্যাটাচমেন্ট ইত্যাদি গ্রহণ করতে পারেন।

Message message = new MimeMessage(session);
MimeMultipart multipart = (MimeMultipart) message.getContent();
for (int i = 0; i < multipart.getCount(); i++) {
    MimeBodyPart part = (MimeBodyPart) multipart.getBodyPart(i);
    // Body part প্রসেসিং
    if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
        // Attachment প্রক্রিয়া করা
    } else {
        // Body কন্টেন্ট পড়া
        String content = part.getContent().toString();
    }
}

সারাংশ:

  • Store এবং Folder ক্লাস JavaMail API-তে ইমেইল রিট্রিভ করার জন্য ব্যবহৃত হয়। Store ক্লাস মেইল সার্ভারের সাথে সংযোগ স্থাপন করে এবং Folder ক্লাস ইমেইল ফোল্ডার (যেমন INBOX) থেকে মেইল অ্যাক্সেস করে।
  • ইমেইল পড়ার জন্য MimeMessage ব্যবহার করা হয়, যেখানে মেইল কন্টেন্ট, পাঠক এবং প্রাপক সম্পর্কিত সমস্ত তথ্য পাওয়া যায়।
  • ইমেইল গুলোর কন্টেন্ট, প্রাপক, এবং অন্যান্য মেটা-ডেটা JavaMail API এর মাধ্যমে প্রক্রিয়া করা এবং দেখানো সম্ভব।
Content added By
Promotion

Are you sure to start over?

Loading...