2009-05-11 4 views
10

Apache Commons 이메일 라이브러리를 사용하여 전자 메일을 보내고 있지만 Gmail SMTP 서버를 통해 보낼 수는 없습니다.
누구나 Gmail 메일 서버 및 기타 서버에서 작동하는 샘플 코드를 제공 할 수 있습니까? Gmail은 SMTP 서버에 이메일을 보내기Apache Commons 이메일 라이브러리를 사용하여 Java에서 이메일 보내기

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(); 

답변

10

인증 및 SSL이 필요합니다

나는 작동하지 않는 다음 코드를 사용하고 있습니다. 사용자 이름과 비밀번호는 아주 간단합니다. 인증 및 SSL을 사용할 수 있도록 다음 속성을 설정했는지 확인하고 올바르게 작동하는지 확인하십시오.

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

예제 코드에 사용 가능한 TLS를 추가하십시오.
email.setTSL(true);
방법이 버전> = 1.3되지 않으며, 대신 사용한다 : API-버전 < 1.3 사용을 위해

commons.email를 사용 email.setStartTLSEnabled(true);

2

나를 위해 일했다.

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

아래 코드에서 작동하는 코드를 찾으십시오. 분명히 프로젝트의 빌드 경로에 아파치 jar를 추가해야한다.

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!"); 
} 

감사합니다, 세르주