Update of /var/cvs/applications/email/src/org/mmbase/module/smtp
In directory james.mmbase.org:/tmp/cvs-serv27011/src/org/mmbase/module/smtp
Modified Files:
Forwarder.java MailHandler.java PopFetcher.java
Log Message:
made it possible to set properties of Session explicitely (needed e.g. for
pop.gmail.com). Solved some issues with incompatibility of UtilReader
See also:
http://cvs.mmbase.org/viewcvs/applications/email/src/org/mmbase/module/smtp
Index: Forwarder.java
===================================================================
RCS file:
/var/cvs/applications/email/src/org/mmbase/module/smtp/Forwarder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- Forwarder.java 3 Feb 2008 17:42:06 -0000 1.3
+++ Forwarder.java 30 Dec 2008 11:06:12 -0000 1.4
@@ -20,12 +20,12 @@
/**
* Forwarding MailHandler. Fill {...@link #forwards} to make this actually do
something.
*
- * @version $Id: Forwarder.java,v 1.3 2008/02/03 17:42:06 nklasens Exp $
+ * @version $Id: Forwarder.java,v 1.4 2008/12/30 11:06:12 michiel Exp $
*/
public class Forwarder implements MailHandler {
private static final Logger log =
Logging.getLoggerInstance(Forwarder.class);
- private static UtilReader.PropertiesMap f = new UtilReader("forwards.xml",
new Runnable() { public void run() {readForwards();}}).getProperties();
+ private static UtilReader.PropertiesMap f = new UtilReader("forwards.xml",
new Runnable() { public void run() {readForwards();}}).getMaps();
protected static final Map<String, InternetAddress[]> forwards = new
HashMap<String, InternetAddress[]>();
protected static void readForwards() {
Index: MailHandler.java
===================================================================
RCS file:
/var/cvs/applications/email/src/org/mmbase/module/smtp/MailHandler.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- MailHandler.java 31 Jul 2008 13:22:36 -0000 1.13
+++ MailHandler.java 30 Dec 2008 11:06:12 -0000 1.14
@@ -18,7 +18,7 @@
/**
* A MailHandler handles <em>one</em> mail. So you must create a new one for
every received message
* (You can use {...@link Factory}).
- * @version $Id: MailHandler.java,v 1.13 2008/07/31 13:22:36 michiel Exp $
+ * @version $Id: MailHandler.java,v 1.14 2008/12/30 11:06:12 michiel Exp $
*/
public interface MailHandler {
@@ -64,11 +64,14 @@
private static final Logger log =
Logging.getLoggerInstance(Factory.class);
static UtilReader.PropertiesMap mailHandlers =
- new UtilReader("mailhandlers.xml").getProperties();
+ new UtilReader("mailhandlers.xml").getMaps();
public static MailHandler getInstance() {
List<MailHandler> mh = new ArrayList<MailHandler>();
List<Map.Entry<String, String>> classes = (List<Map.Entry<String,
String>>) mailHandlers.get("classes");
+ if (classes == null) {
+ log.warn("No mail handlers found in " + mailHandlers);
+ } else {
for (Map.Entry<String, String> c : classes) {
String cn = c.getKey();
try {
@@ -77,6 +80,7 @@
log.error(e.getMessage(), e);
}
}
+ }
MailHandler instance;
if (mh.size() == 1) {
instance = mh.get(0);
Index: PopFetcher.java
===================================================================
RCS file:
/var/cvs/applications/email/src/org/mmbase/module/smtp/PopFetcher.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- PopFetcher.java 30 Jul 2008 05:03:07 -0000 1.5
+++ PopFetcher.java 30 Dec 2008 11:06:12 -0000 1.6
@@ -13,6 +13,7 @@
import org.mmbase.util.logging.Logging;
import org.mmbase.util.logging.Logger;
import org.mmbase.bridge.*;
+import org.mmbase.util.ResourceLoader;
import java.util.*;
import org.mmbase.applications.crontab.*;
import javax.mail.*;
@@ -22,7 +23,7 @@
* A mail fetcher that does not smtp-listen but periodically pops from a
server. Implemented as a cronjob
*
*
- * @version $Id: PopFetcher.java,v 1.5 2008/07/30 05:03:07 michiel Exp $
+ * @version $Id: PopFetcher.java,v 1.6 2008/12/30 11:06:12 michiel Exp $
*/
public class PopFetcher extends MailFetcher implements CronJob {
private static final Logger log =
Logging.getLoggerInstance(PopFetcher.class);
@@ -53,6 +54,7 @@
* (based on received date)
*/
public void run() {
+ Properties props = System.getProperties();
try {
Cloud cloud = CloudMailHandler.getCloud();
Node lastRun = null;
@@ -88,11 +90,6 @@
}
};
- // Get a Properties object
- Properties props = System.getProperties();
-
- // Get a Session object
- Session session = Session.getInstance(props, null);
String[] configuration = entry.getConfiguration().split(",");
String protocol = configuration[0];
@@ -100,9 +97,18 @@
String userName = configuration[2];
String password = configuration[3];
int port = -1;
- if (configuration.length > 4) {
+ if (configuration.length > 4 && configuration[4].length() > 0) {
port = Integer.parseInt(configuration[4]);
}
+ // Get a Properties object
+
+ if (configuration.length > 5) {
+ props = new Properties();
+
props.load(ResourceLoader.getConfigurationRoot().getResourceAsStream(configuration[5]));
+ }
+ // Get a Session object
+ Session session = Session.getInstance(props, null);
+
Store store = session.getStore(protocol);
log.service("Connecting to " + userName + "@" + host + (port == -1
? "" : ":" + port) + " using " + protocol + ". Using cloud of " +
cloud.getUser() + " (" + cloud.getUser().getRank() + "). Previous mail:" +
lastDate);
@@ -152,10 +158,10 @@
lastRun.commit();
log.service("Handled " + total + " email messages. Set last
run in " + lastRun.getNumber() + " to " + new
Date(lastRun.getLongValue("start") * 1000));
} else {
- log.service("No newer emails found");
+ log.debug("No newer emails found");
}
} catch (Exception e) {
- log.error(e.getMessage(), e);
+ log.error(e.getMessage() + "props: " + props, e);
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs