使用简单java邮件发送邮件时的Log4j异常

时间:2010-05-21 14:56:28

标签: java log4j

我已经在Simple Java Mail wiki上阅读了本教程,并且我已经下载了所有必需的库(Log4j,JavaMail API,激活框架),但是当我尝试运行我的程序时出现此错误:

  

log4j:WARN找不到logger(org.codemonkey.vesijama.Mailer)的appender。   org.codemonkey.vesijama.MailException:通用错误:异常读取响应   log4j:WARN请正确初始化log4j系统。

这是我使用的源代码:

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", "XXXXX@gmail.com");
    email.setSubject("hey");
    email.addRecipient("hai", "XXXXXXX@yahoo.com", 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, "XXXXXXXX@gmail.com", "XXXXXX").sendMail(email);
    }
        catch(MailException me)
        {
            System.out.println(me);
        }
}
}

我也尝试使用端口587,虽然我遇到了同样的错误。

提问:它还说可以添加附件。有没有人有我如何附加.xls文件的代码示例。

编辑:我已成功发送邮件(已将log4j.xml添加到每个文件夹),但我仍然无法使用addAttachment。我还更新了我的源代码。

1 个答案:

答案 0 :(得分: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配置选项。