2009-05-11 39 views
10

私はApache Commons Emailライブラリを使用して電子メールを送信していますが、GmailのSMTPサーバー経由で送信することはできません。
誰でもGmailのSMTPサーバーなどで動作するサンプルコードを提供できますか? 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

下記のコードを見てください。明らかに、プロジェクトのビルドパスにApache 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!"); 
} 

よろしく、 はSergiu