কোনও ইমেল সার্ভার ব্যবহার না করেই ইমেলগুলি প্রেরণ করা হচ্ছে


11

জাভামেল সাধারণত কোনও ইমেল সরবরাহকারীর এসএমটিপি ইন্টারফেসের মাধ্যমে একটি ইমেল সার্ভার ব্যবহার করে ইমেল প্রেরণ করে। ই-মেইল প্রেরণের জন্য কি কোনও ইমেল সার্ভার ব্যবহার করা দরকার?

আমার একটি ওয়েবসাইট রয়েছে যা ইমেলগুলি প্রেরণ করবে এবং সম্ভব হলে আমি কোনও ইমেল সার্ভার ব্যবহার না করে সরাসরি ওয়েব সাইট কোড থেকে ই-মেইল প্রেরণ করতে চাই। জাভামেল এফএকিউ বলছে যে একটি ইমেল সার্ভার প্রয়োজন।

কোনও ইমেল সার্ভার ব্যবহার না করেই জাভামেল বা অন্য কোনও এপিআই দিয়ে ইমেল প্রেরণের কোনও উপায় আছে কি?


না, এটা সম্ভব নয়। ইমেল ক্লায়েন্টরা আপনি যে ইমেলটি প্রেরণ করছেন তা কীভাবে পাওয়ার কথা?
ওডে


একটি বিকল্প, যা অগত্যা জাভমাইলের সাথে কাজ করবে না, তা হল একটি এমটিএ স্থাপন করা যেমন পোস্টফিক্স। আপনার তখন একটি দূরবর্তী মেল সার্ভারের প্রয়োজন হবে না, কারণ আপনার স্থানীয় একটি রয়েছে।
ব্যবহারকারী16764

অবিকল। আমি মনে করি আপনি বলতে পারেন যে পুরানো মাইক্রোসফ্ট মেল এমটিএ এই অর্থে "সার্ভারলেস" ছিল যে মাইক্রোসফ্ট মেল ক্লায়েন্টরা পৃথকভাবে ফাইল সিস্টেম সিস্টেমে সেন্ট্রাল মেইল ​​স্টোর / থেকে একটি বার্তা প্রাপ্ত করার এবং রাখার বিষয়ে ডিল করে (একটি ফাইল সার্ভারে , দ্বারা) পথ)। তবে তারপরেও অন্য কোনও ব্যক্তির কাছে সেই সিস্টেমটি বন্ধ করে দেওয়ার একমাত্র উপায় ছিল একটি গেটওয়ে দিয়ে, যেখানে সর্বদা সার্ভার জড়িত। আপনি কি নিশ্চিত যে প্রশ্নটি আপনি চেয়েছিলেন তা নিশ্চিত?
ক্রেগ 13

উত্তর:


11

আপনি ঠিকানার ডোমেনের এমএক্স রেকর্ডে উল্লিখিত এসএমটিপি সার্ভারগুলিতে সরাসরি ইমেল সরবরাহ করতে পারেন। সাধারণত এটি একটি খারাপ ধারণা, যদিও:

একটি স্থানীয় সার্ভারে মেল সরবরাহ করা দ্রুত - আপনি প্রায় অবিলম্বে চালিয়ে যেতে পারেন এবং অন্য কিছু করতে পারেন এবং সার্ভারটিকে বিতরণটি পরিচালনা করতে দিন।

প্রকৃত বিতরণে কিছু সময় নিতে পারে, উদাহরণস্বরূপ রিমোট মেল সার্ভারটি ধীর হতে পারে। বা এটি মেলটি প্রথমে প্রত্যাখ্যান করতে পারে - এটি কোনও প্রেরককে দ্বিতীয় বার কোনও মেল প্রেরণের চেষ্টা করার জন্য স্প্যামের বিরুদ্ধে জানা কৌশল, যা কিছু স্প্যাম বট করবে না।

এছাড়াও মেল সার্ভার সহজেই একদিন পরে আবার চেষ্টা করতে পারে যখন রিমোট সার্ভারটি ডাউন থাকে, এটি হারিয়ে যাওয়া মেইলের ঝুঁকি হ্রাস করে।


স্প্যাম প্রতিরোধ সম্পর্কিত তথ্যের জন্য ধন্যবাদ। আমি দেখতে পাচ্ছি কীভাবে এই কৌশলগুলি পরিবর্তন করা একটি ই-মেইল সার্ভারকে একটি ভাল ধারণা ব্যবহার করে।
ডিন শুলজে

2
প্রযুক্তিগতভাবে, এটি আপনার অ্যাপ্লিকেশনটিকে একটি মেলসেভারে পরিণত করে, তাই আপনি এখনও একটি মেলসার্ভার ব্যবহার করছেন, তার চেয়েও হাড় হাড় একটি হলেও।

@ জ্বলন্ত কীভাবে এটি অন্য কোনও সার্ভারের সাথে সংযোগ স্থাপনকারী ক্লায়েন্ট হিসাবে অভিনয় করলে এটি কীভাবে মেল সার্ভার হবে? আমি বরং "সার্ভার" হিসাবে ভেবেছিলাম আপনার সাথে কমপক্ষে একটি "ক্লায়েন্ট" সংযুক্ত থাকতে হবে ...
জেসন গোয়েমাট

এছাড়াও, সরাসরি আপনার অ্যাপ্লিকেশন থেকে রিমোট মেল সার্ভারে প্রেরণ এসপিএফ / ডিএমএআরসি অ্যান্টি-স্প্যাম চেকগুলির অনেকগুলি চলমান সম্ভবত।
ক্রেগ 13

1

এটি "নির্ভরযোগ্য" হিসাবে আপনি কী বোঝাতে চেয়েছেন তার উপর নির্ভর করে।

যদি "ব্যবহার" এর মধ্যে কেবল কোনও ইমেল সার্ভারের সরাসরি ব্যবহার অন্তর্ভুক্ত থাকে, তবে আপনি কোনও ইমেল সার্ভারে অপ্রত্যক্ষভাবে অন্য কোনও ধরণের পরিষেবা দিয়ে পাঠাতে মেলটি পাস করতে পারেন । ব্যবহারিক ব্যবহারের ক্ষেত্রে এটি আমার কাছে "গুড ইনফ ™" সমাধান বলে মনে হচ্ছে।

তবে, যদি আপনার প্রশ্নের অর্থ আক্ষরিক অর্থে " কোনও ইমেল সার্ভার জড়িত না করে ", তবে এটি কেবল তখনই সম্ভব হবে, যদি আপনার সফ্টওয়্যারটি আপনার পছন্দের কোনও উপায়ে লক্ষ্য ক্লায়েন্টের ইনবক্সে মেইলটি রাখতে সক্ষম হয় তবে POP3 ব্যতীত বা আইএমএপ বা ইমেল প্রসঙ্গে ব্যবহৃত অন্য কোনও ইমেল-প্রাসঙ্গিক প্রোটোকল (কারণ, আপনি যদি এই জাতীয় প্রোটোকল ব্যবহার করেন তবে সেই নির্দিষ্ট প্রোগ্রামটি মেল সার্ভার হিসাবে কাজ করবে, যা অনুমোদিত নয়)

প্রশ্নের উত্তর দিতে: হ্যাঁ। অন্তত থিওরিতে।


আমি জিজ্ঞাসা করছি প্রাপকদের ই-মেইল সার্ভারে (2 ই-মেইল সার্ভার) ইমেল প্রেরণের জন্য আমাকে কোনও ইমেল সার্ভার ব্যবহার করতে হবে কিনা। আমি আমার কোড (1 ই-মেইল সার্ভার) থেকে সরাসরি প্রাপকদের ই-মেইল সার্ভারে প্রেরণে আগ্রহী। আমি প্রাপকদের ই-মেইল সার্ভারকে বাইপাস করার চেষ্টা করছি না, কেবল প্রেরণকারী ইমেল সার্ভারটি।
ডিন শুলজে

ইমেল প্রেরণের জন্য আপনাকে মেল ক্লায়েন্ট বা মেল সার্ভার হতে হবে। বেশিরভাগ ক্ষেত্রে, ক্লায়েন্ট হিসাবে মেল প্রেরণের জন্য, আপনাকে শ্বেত-তালিকা বা অনুমোদনের মাধ্যমে বিশ্বাস করতে হবে। সার্ভার হিসাবে প্রেরণে অনুমোদনের নিয়মগুলি প্রায়শই আরও কঠোর হয়। এটি প্রাপকদের ইমেল সার্ভারগুলি বৈধ প্রেরককে অনুমোদন দেওয়ার জন্য যে নিয়মগুলি ব্যবহার করে তা নির্ভর করে on
ববডালগাইশ

@ BobDalgleish: আমি যদি আপনার মেশিনে অ্যাক্সেস পরিচালনা করতে পারি তবে আমি কিছু করতে পারি। আপনার ইনবক্সে মেলগুলি অন্তর্ভুক্ত করা। আমি সম্মত হই যে এটি নিছক একাডেমিক বিকল্প, তবে প্রশ্নটি এত স্পষ্টভাবে বাদ যায়নি।
জেনসজি

@ ডিয়ানশুলজে: আমার ধারণা জোহানস ইতিমধ্যে সেই নির্দিষ্ট প্রশ্নের উত্তর দিয়েছে এবং কেন এটি এত ভাল ধারণা নয়। আমি যদি আপনি হয়ে থাকি তবে আমি পরিষেবাটির পক্ষে চাই।
জেনসজি

0

আমাদের যদি জাভা কোড থেকে কারও কাছে একটি মেইল ​​প্রেরণ করতে হয় তবে আমাদের কিছু মেল সার্ভার শংসাপত্রগুলিতে অ্যাক্সেস থাকা দরকার। ভাল, সবসময় না।

গুগল এর একটি মেল সার্ভারে বিনামূল্যে অ্যাক্সেস সরবরাহ করেছে এবং আপনি এটি জাভা কোডে ব্যবহার করতে পারেন। লিখিত কোডের নীচে যদি আমার নিজের কাছে একটি নোট পছন্দ হয়। সুতরাং, আমার যদি এটির প্রয়োজন হয় তবে আপনি এখানে উল্লেখ করতে পারেন: http://www.computerbuzz.in/2014/02/how-to-send-email-in-java-using-gmail.html

private void setMailServerProperties()
    {
        Properties emailProperties = System.getProperties();
        emailProperties.put("mail.smtp.port", "586");
        emailProperties.put("mail.smtp.auth", "true");
        emailProperties.put("mail.smtp.starttls.enable", "true");
        mailSession = Session.getDefaultInstance(emailProperties, null);
    }

    private MimeMessage draftEmailMessage() throws AddressException, MessagingException
    {
        String[] toEmails = { "computerbuzz@gmail.com" };
        String emailSubject = "Test email subject";
        String emailBody = "This is an email sent by http://www.computerbuzz.in.";
        MimeMessage emailMessage = new MimeMessage(mailSession);
        /**
         * Set the mail recipients
         * */
        for (int i = 0; i < toEmails.length; i++)
        {
            emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmails[i]));
        }
        emailMessage.setSubject(emailSubject);
        /**
         * If sending HTML mail
         * */
        emailMessage.setContent(emailBody, "text/html");
        /**
         * If sending only text mail
         * */
        //emailMessage.setText(emailBody);// for a text email
        return emailMessage;
    }

    private void sendEmail() throws AddressException, MessagingException
    {
        /**
         * Sender's credentials
         * */
        String fromUser = "user-email@gmail.com";
        String fromUserEmailPassword = "*******";

        String emailHost = "smtp.gmail.com";
        Transport transport = mailSession.getTransport("smtp");
        transport.connect(emailHost, fromUser, fromUserEmailPassword);
        /**
         * Draft the message
         * */
        MimeMessage emailMessage = draftEmailMessage();
        /**
         * Send the mail
         * */
        transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
        transport.close();
        System.out.println("Email sent successfully.");
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.