Specific Sender বা Subject অনুসারে Email Process করা

Email Filtering এবং Processing - জাভা মেইল এপিআই (JavaMail API) - Java Technologies

304

JavaMail API ব্যবহার করে আপনি specific sender বা subject অনুসারে ইমেইল প্রক্রিয়া (process) করতে পারেন। এটি বেশ কার্যকর যখন আপনি আপনার ইনবক্সে একটি নির্দিষ্ট প্রেরক বা বিষয় অনুসারে মেইল ফিল্টার করতে চান। এখানে, আমরা IMAP প্রোটোকল ব্যবহার করে specific sender এবং subject অনুসারে ইমেইলগুলি পড়ার এবং প্রক্রিয়া করার উদাহরণ দেখবো।

Steps to Process Emails by Specific Sender or Subject using JavaMail API:

  1. Store ক্লাস ব্যবহার করে ইমেইল সার্ভারের সাথে সংযোগ স্থাপন করতে হবে।
  2. Folder ক্লাস ব্যবহার করে INBOX ফোল্ডারে পৌঁছাতে হবে।
  3. ইমেইল মেসেজগুলি ফিল্টার করার জন্য, আমরা Message এর getFrom() এবং getSubject() মেথড ব্যবহার করব।
  4. ইমেইল প্রক্রিয়া করতে এবং প্রয়োজনীয় ডেটা (যেমন প্রেরক, বিষয়, মেসেজ কন্টেন্ট) দেখতে পাব।

Specific Sender বা Subject অনুসারে ইমেইল প্রক্রিয়া করা (JavaMail API)

Example Code to Process Emails by Specific Sender or Subject

এখানে একটি উদাহরণ দেওয়া হল যেখানে আমরা IMAP প্রোটোকল ব্যবহার করে specific sender এবং subject অনুসারে ইমেইল ফিল্টার করে মেইলগুলো প্রসেস করব।

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

public class ProcessEmailBySenderOrSubject {

    public static void main(String[] args) {
        // ইমেইল সার্ভারের প্রপার্টি সেট করা (IMAP)
        String host = "imap.gmail.com";
        String username = "your-email@gmail.com"; // আপনার ইমেইল অ্যাড্রেস
        String password = "your-app-password"; // আপনার অ্যাপ পাসওয়ার্ড (যদি 2-step verification চালু থাকে)

        // প্রপার্টি সেট করা
        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) {
                String sender = Arrays.toString(message.getFrom());
                String subject = message.getSubject();

                // Specific sender এবং subject অনুযায়ী ফিল্টার করা
                if (sender.contains("specific-email@example.com") && subject.contains("Specific Subject")) {
                    System.out.println("From: " + sender);
                    System.out.println("Subject: " + subject);
                    System.out.println("Date: " + message.getSentDate());
                    try {
                        System.out.println("Content: " + message.getContent());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    System.out.println("------------------------------------------------------------");
                }
            }

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

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

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

  1. IMAP Connection: Store ক্লাস ব্যবহার করে IMAP প্রোটোকল দিয়ে ইমেইল সার্ভারের সাথে সংযোগ স্থাপন করা হয়েছে।
  2. Folder: Folder ক্লাস ব্যবহার করে INBOX ফোল্ডারটি খোলা হয়েছে যেখানে আমাদের ইমেইলগুলো থাকবে।
  3. Message: getFrom() এবং getSubject() মেথড ব্যবহার করে প্রেরক এবং বিষয় (subject) যাচাই করা হচ্ছে।
  4. Sender এবং Subject Filtering: নির্দিষ্ট প্রেরক বা বিষয় অনুসারে ইমেইল গুলো ফিল্টার করা হচ্ছে এবং প্রক্রিয়া করা হচ্ছে।
  5. Content: যদি প্রেরক এবং বিষয় মেলে, তবে ইমেইল কন্টেন্ট (যেমন টেক্সট কন্টেন্ট বা HTML কন্টেন্ট) প্রিন্ট করা হচ্ছে।

Specific Sender বা Subject অনুযায়ী ইমেইল ফিল্টার করার পদ্ধতি:

  1. Sender Filtering:

    • message.getFrom() মেথড ব্যবহার করে আপনি প্রেরক ইমেইল ঠিকানা বের করতে পারেন। যদি সেই ঠিকানা আপনার কাঙ্ক্ষিত প্রেরকের সাথে মেলে, তবে সেটি প্রসেস করা হবে।
    String sender = Arrays.toString(message.getFrom());
    if (sender.contains("specific-email@example.com")) {
        // ইমেইল প্রক্রিয়া করা
    }
    
  2. Subject Filtering:

    • message.getSubject() মেথড ব্যবহার করে আপনি মেসেজের বিষয় বের করতে পারেন এবং যদি বিষয়টি আপনার কাঙ্ক্ষিত বিষয় (subject) এর সাথে মেলে তবে সেটি প্রসেস করা হবে।
    String subject = message.getSubject();
    if (subject.contains("Specific Subject")) {
        // ইমেইল প্রক্রিয়া করা
    }
    

Additional Considerations:

  • Message Content: message.getContent() মেথড ব্যবহার করে মেইলটির কন্টেন্ট (টেক্সট বা HTML) বের করা সম্ভব।
    • যদি কন্টেন্ট টাইপ text/html বা text/plain হয়, তবে আপনাকে getContent() এর মাধ্যমে কন্টেন্ট অ্যাক্সেস করতে হবে।
    • HTML কন্টেন্ট প্রক্রিয়া করতে, HTML ট্যাগগুলো বিশ্লেষণ করতে পারেন বা JSoup লাইব্রেরি ব্যবহার করতে পারেন।
  • Mail Flags: আপনি মেইলগুলোকে Flag করে ফিল্টার করতে পারেন (যেমন, Flags.Flag.SEEN, Flags.Flag.FLAGGED ইত্যাদি) যা মেইলগুলোকে আগে থেকে চিহ্নিত করে রাখতে সহায়তা করে।

সারাংশ:

  • JavaMail API ব্যবহার করে আপনি সহজে specific sender বা subject অনুযায়ী ইমেইল ফিল্টার এবং প্রক্রিয়া করতে পারেন।
  • Store, Folder, এবং Message ক্লাসের মাধ্যমে ইমেইল সার্ভারের সাথে সংযোগ স্থাপন, মেইল পড়া এবং নির্দিষ্ট শর্ত অনুযায়ী ইমেইল প্রক্রিয়া করা যায়।
  • এই উদাহরণে IMAP প্রোটোকল ব্যবহার করা হয়েছে, তবে আপনি POP3 প্রোটোকলও ব্যবহার করতে পারেন একইভাবে।
Content added By
Promotion

Are you sure to start over?

Loading...