通知完了メールの項目にメールアドレスを設定してもメールが届きませんでした

(from osdn.net/users/itoyan)
いつもお世話になっております。
バグの可能性があるので、ご連絡させていただきます。
一応自己解決はしたのですが、その対応方法も含めてご報告させていただきます。

Fess 9.1において、クロールの状況やサーバの死活監視をするために、
クロール完了後にメールを飛ばすことにしました。そのために、
管理者メニューのメニュー全般にある通知アドレスにメールアドレスを1つ設定しました。
しかしクロール完了後、手元にメールが届きませんでした。

このとき、fess.out(管理者メニューのログファイルの項目から参照可能)には
次のようなメッセージが出てきていました。

2014-07-30 00:15:19,105 [main] ERROR jp.sf.fess.exec.Crawler - Crawler does not work correctly.
java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
at javax.mail.Session.initLogger(Session.java:221)
at javax.mail.Session.(Session.java:206)
at javax.mail.Session.getInstance(Session.java:242)
at jp.sf.fess.helper.MailHelper.send(MailHelper.java:58)
at jp.sf.fess.exec.Crawler.sendMail(Crawler.java:363)
at jp.sf.fess.exec.Crawler.process(Crawler.java:323)
at jp.sf.fess.exec.Crawler.main(Crawler.java:243)
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
… 7 more

fess.outのNoClassDefFoundErrorから、javax.mailを使えという意味に取れたので、
javax.mailを/webapps/fess/WEB-INF/lib/以下に追加してみました
(javax.mail-apiにはcom.sun.mail.util.MailLoggerがないのが追加した理由)。
この状態で、再度クロールしてもメールは来ないのですが、エラーメッセージは変化しました。

2014-07-30 11:53:56,549 [main] WARN jp.sf.fess.exec.Crawler - Failed to send the notification.
java.lang.NullPointerException
at javax.mail.internet.InternetAddress.toString(InternetAddress.java:466)
at javax.mail.internet.MimeMessage.setAddressHeader(MimeMessage.java:739)
at javax.mail.internet.MimeMessage.setRecipients(MimeMessage.java:617)
at jp.sf.fess.helper.MailHelper.send(MailHelper.java:71)
at jp.sf.fess.exec.Crawler.sendMail(Crawler.java:363)
at jp.sf.fess.exec.Crawler.process(Crawler.java:323)
at jp.sf.fess.exec.Crawler.main(Crawler.java:243)

NullPointerExceptionが出てきたので、githubにあるコードを追ってみると、
jp.sf.fess.helper.MailHelper.send(MailHelper.java:71) がおかしいようなので、
以下のように修正しました。
toAddresses.lengthが1のときに処理がされない上に、2以上であっても
address[0]に値が入らないためNullPointerExceptionが発生していたようです。

    try {
        // create a message
        final MimeMessage msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress(from));
        final InternetAddress[] address = new InternetAddress[toAddresses.length];
	/*
        if (toAddresses.length > 1) {
            for (int i = 1; i < toAddresses.length; i++) {
                address[i] = new InternetAddress(toAddresses[i]);
            }
        }
	*/
        for (int i = 0; i < toAddresses.length; i++) {
            address[i] = new InternetAddress(toAddresses[i]);
        }
        msg.setRecipients(Message.RecipientType.TO, address);
        msg.setSubject(subject);
        msg.setSentDate(new Date());
        msg.setText(text);

        Transport.send(msg);
    } catch (final MessagingException e) {
        throw new FessSystemException("Failed to send "
                + Arrays.toString(toAddresses), e);
    }

MailHelper.javaの修正・再コンパイル後、できたclassファイルを差し替えることで、
メールが届くようになったので現時点では問題はないのですが、
お時間のあるときにご確認いただければと存じます。

以上です。

(from osdn.net/users/xfedora)
web-inf/classes/fess.diconでのSMTP設定(mail.smtp.host)をしたら治りませんかね?

<component name="mailHelper" class="jp.sf.fess.helper.MailHelper">
	<initMethod name="addProperty">
		<arg>"mail.smtp.host"</arg>
		<arg>"localhost"</arg>
	</initMethod>

(from osdn.net/users/shinsuke)
ご指摘いただき有り難うございます。
https://github.com/codelibs/fess/issues/186
として対応させていただきました。