Исключение Log4j при отправке почты с простым java-mail - PullRequest
4 голосов
/ 21 мая 2010

Я уже читал это руководство на вики Simple Java Mail и загрузил все необходимые библиотеки (Log4j, JavaMail API, среда активации), хотя при попытке запустить свою программу я получаю эту ошибку: *

log4j: ПРЕДУПРЕЖДЕНИЕ. Для регистратора не найдено ни одного добавителя (org.codemonkey.vesijama.Mailer). 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 Ответ

1 голос
/ 21 мая 2010

Первая ошибка, которую вы получаете, связана с невозможностью найти файл log4j.xml в пути к классам для настройки ведения журнала log4j.

Решение этой проблемы должно дать вам больше регистрации, чтобы помочь вам решить любые другие оставшиеся проблемы.

Вам понадобится создать файл конфигурации log4j, чтобы увидеть вывод.

Google для "простого 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...