إرسال البريد الإلكتروني في جافا باستخدام أباتشي العموم ليبس البريد الإلكتروني

StackOverflow https://stackoverflow.com/questions/848794

سؤال

وأستخدمه أباتشي العموم مكتبة البريد الإلكتروني لإرسال رسائل البريد الإلكتروني، لكني لست قادرا على إرسالها عبر خدمة بريد جوجل SMTP.
يمكن لأي شخص أن يقدم نموذج التعليمات البرمجية التي تعمل مع خادم SMTP جوجل وغيرها؟

وأنا باستخدام التعليمات البرمجية التالية التي لا تعمل:

String[] recipients = {"receiver@gmail.com"};

SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com");
email.setAuthentication("sender@gmail.com", "mypasswd");
email.setDebug(true);
email.setSmtpPort(465);

for (int i = 0; i < recipients.length; i++)
{
    email.addTo(recipients[i]);
}

email.setFrom("sender@gmail.com", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();
هل كانت مفيدة؟

المحلول

وإرسال رسائل البريد الإلكتروني إلى ملقم بريد جوجل SMTP يتطلب مصادقة وSSL. اسم المستخدم وكلمة السر هي جميلة على التوالي إلى الأمام. تأكد أن لديك الخصائص التالية لتعيين تمكين مصادقة وSSL وينبغي لها أن تعمل.

mail.smtp.auth=true
mail.smtp.starttls.enable=true

لنموذج التعليمة البرمجية إضافة ما يلي إلى تمكين TLS.

لAPI-الإصدارات <1.3 الاستخدام: <ر> email.setTSL(true);
تم إهمال طريقة لإصدارات> = 1.3، وبدلا من ذلك يجب عليك استخدام: email.setStartTLSEnabled(true);

نصائح أخرى

وتجدون أدناه رمز الذي يعمل. ومن الواضح أن لديك لإضافة جرة اباتشي على مسار بناء المشروع الخاص بك.

public static void sendSimpleMail() throws Exception {
    Email email = new SimpleEmail();
    email.setSmtpPort(587);
    email.setAuthenticator(new DefaultAuthenticator("your gmail username",
            "your gmail password"));
    email.setDebug(false);
    email.setHostName("smtp.gmail.com");
    email.setFrom("me@gmail.com");
    email.setSubject("Hi");
    email.setMsg("This is a test mail ... :-)");
    email.addTo("you@gmail.com");
    email.setTLS(true);
    email.send();
    System.out.println("Mail sent!");
}

والتحيات، سيرجيو

وعملت باستخدام commons.email بالنسبة لي.

HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.gmail.com");
email.setSmtpPort(465);
email.setSSL(true);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top