2010-05-21 73 views
4

發送郵件時,我已經讀了Simple Java Mail維基本教程中,我已經下載了所有需要的庫文件(Log4j的,JavaMail的API,激活框架)雖然當我嘗試運行我的節目,我得到這個錯誤:Log4j的異常簡單的Java郵件

log4j:WARN No appenders could be found for logger (org.codemonkey.vesijama.Mailer). org.codemonkey.vesijama.MailException: Generic error: Exception reading response log4j:WARN Please initialize the log4j system properly.

這是源代碼,我使用:

import javax.mail.Message.RecipientType; 
import org.codemonkey.vesijama.Email; 
import org.codemonkey.vesijama.MailException; 
import org.codemonkey.vesijama.Mailer; 
import org.apache.log4j.*; 
public class testSend { 
final Email email = new Email(); 
static Logger log = Logger.getLogger(mailmailan.class); 
public testSend{ 
try{ 
    BasicConfigurator.configure(); 
    email.setFromAddress("test", "[email protected]"); 
    email.setSubject("hey"); 
    email.addRecipient("hai", "[email protected]", RecipientType.TO); 
    email.setText("We should meet up!"); 
    email.setTextHTML("<b>We should meet up!</b>"); 
    email.addAttachment("output.xls", odfDatasource); 
    new Mailer("smtp.gmail.com", 465, "[email protected]", "XXXXXX").sendMail(email); 
    } 
     catch(MailException me) 
     { 
      System.out.println(me); 
     } 
} 
} 

我使用端口587,雖然我得到了同樣的錯誤也試過。

方問題:它也說,這是可以添加附件。有沒有人有我如何附加.xls文件的代碼示例。

編輯:我已成功發送郵件(將log4j.xml添加到每個文件夾中),但我仍然無法使用addAttachment。我也更新了我的源代碼。

回答

1

你得到的與不能夠發現在類路徑的log4j.xml文件來配置log4j日誌記錄的第一個錯誤。

解決這個問題應該給你更多的日誌記錄,以幫助您解決任何其餘的問題。

你需要創建一個log4j的配置文件來查看輸出。

谷歌搜索「簡單的log4j.xml」很快就發現這個例子:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> 
    <layout class="org.apache.log4j.SimpleLayout"/> 
    </appender> 
    <category name="com.something.something.you.want.to.see.debug"> 
    <priority value="debug"/> 
    </category><root><priority value="info"/> 
    <appender-ref ref="ConsoleAppender"/> 
    </root> 
</log4j:configuration> 

這將記錄信息消息的一切,和調試在命名類別規定的東西(我叫「com.something.something。 you.want.to.see.debug「)通常,這個名稱與您的包結構相同。

搜索log4j的教程來學習的log4j配置更多的選擇。

+0

thx爲log4j.xml,現在我的問題只需要學習如何使附件 – Huuhaacece 2010-05-22 07:35:24