2009-05-11 19 views
10

E-posta göndermek için Apache Commons E-posta kitaplığı kullanıyorum, ancak bunları GMail SMTP sunucusu aracılığıyla gönderemiyorum.
Herhangi biri GMail SMTP sunucusu ve diğerleri ile çalışan örnek kod sağlayabilir mi? GMail SMTP sunucusuna e-postaları göndermeJava kullanarak e-posta gönderme Apache Commons e-posta libs

String[] recipients = {"[email protected]"}; 

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

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

email.setFrom("[email protected]", "Me"); 
email.setSubject("Test message"); 
email.setMsg("This is a simple test of commons-email"); 
email.send(); 

cevap

10

kimlik doğrulama ve SSL gerektirir:

Ben çalışmıyor Aşağıdaki kodu kullanıyorum. Kullanıcı adı ve şifre oldukça açık. Kimlik doğrulamayı ve SSL'yi etkinleştirmek için aşağıdaki özelliklere sahip olduğunuzdan ve çalıştığından emin olun.

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

Örnek kod için, TLS'yi etkinleştirmek için aşağıdakini ekleyin.
email.setTSL(true);
yöntem sürümleri> = 1.3 için kullanımdan kaldırıldı ve bunun yerine kullanmalısınız:: API Sürümleri < 1.3 kullanım için

commons.email kullanılarak email.setStartTLSEnabled(true);

2

benim için çalıştı.

HtmlEmail email = new HtmlEmail(); 
email.setHostName("smtp.gmail.com"); 
email.setSmtpPort(465); 
email.setSSL(true); 
8

Lütfen aşağıdaki kodu içeren bir kod bulun. Açıkçası, apache jar'ını projenizin yapım yoluna eklemelisiniz.

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("[email protected]"); 
    email.setSubject("Hi"); 
    email.setMsg("This is a test mail ... :-)"); 
    email.addTo("[email protected]"); 
    email.setTLS(true); 
    email.send(); 
    System.out.println("Mail sent!"); 
} 

Selamlar, Sergiu

İlgili konular