CCM NG: Added MailConfig
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3553 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
1fe916c528
commit
57f11c2427
|
|
@ -0,0 +1,158 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2003-2004 Red Hat Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package com.arsdigita.mail;
|
||||||
|
|
||||||
|
import com.arsdigita.runtime.AbstractConfig;
|
||||||
|
import com.arsdigita.util.parameter.BooleanParameter;
|
||||||
|
import com.arsdigita.util.parameter.ErrorList;
|
||||||
|
import com.arsdigita.util.parameter.Parameter;
|
||||||
|
import com.arsdigita.util.parameter.ParameterError;
|
||||||
|
import com.arsdigita.util.parameter.StringParameter;
|
||||||
|
import com.arsdigita.util.parameter.URLParameter;
|
||||||
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
import com.arsdigita.web.Web;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MailConfig
|
||||||
|
*
|
||||||
|
* @author Rafael H. Schloming <rhs@mit.edu>
|
||||||
|
* @version $Revision: #7 $ $Date: 2004/08/16 $
|
||||||
|
* @version $Id: MailConfig.java 1513 2007-03-22 09:09:03Z chrisgilbert23 $
|
||||||
|
*/
|
||||||
|
public final class MailConfig extends AbstractConfig {
|
||||||
|
|
||||||
|
private Properties m_props;
|
||||||
|
|
||||||
|
private final Parameter m_debug = new BooleanParameter
|
||||||
|
("waf.mail.debug", Parameter.OPTIONAL, Boolean.FALSE);
|
||||||
|
|
||||||
|
private final Parameter m_javamail = new PropertyFileParameter
|
||||||
|
("waf.mail.javamail.configuration", Parameter.OPTIONAL, null);
|
||||||
|
|
||||||
|
/* used by Mail when the user is not logged in. */
|
||||||
|
private final Parameter m_defaultFrom = new StringParameter
|
||||||
|
("waf.mail.default_from", Parameter.OPTIONAL, "");
|
||||||
|
|
||||||
|
private final Parameter m_sendHTML = new BooleanParameter
|
||||||
|
("waf.mail.send_html_mail", Parameter.OPTIONAL, Boolean.FALSE);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor registers the parameter ands loads values from config file.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public MailConfig() {
|
||||||
|
register(m_javamail);
|
||||||
|
register(m_debug);
|
||||||
|
register(m_defaultFrom);
|
||||||
|
register(m_sendHTML);
|
||||||
|
|
||||||
|
loadInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Properties getJavamail() {
|
||||||
|
if (m_props == null) {
|
||||||
|
URL propsFile = (URL) get(m_javamail);
|
||||||
|
if (propsFile == null) {
|
||||||
|
m_props = new Properties();
|
||||||
|
m_props.put("mail.transport.protocol", "smtp");
|
||||||
|
m_props.put("mail.smtp.host", "localhost");
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
m_props = PropertyFileParameter.getProperties(propsFile);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
throw new UncheckedWrapperException
|
||||||
|
("unable to retrieve properties file from "
|
||||||
|
+ propsFile, ioe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_props;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getDefaultFrom() {
|
||||||
|
String from = (String) get(m_defaultFrom);
|
||||||
|
//TODO: usage of arsdigita.web.Web, not sure if the class will be kept in ccm_ng
|
||||||
|
|
||||||
|
// if (null == from)
|
||||||
|
// from = "notloggedin@" + Web.getConfig().getServer().getName();
|
||||||
|
|
||||||
|
return from;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean isDebug() {
|
||||||
|
return get(m_debug).equals(Boolean.TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* determine whether messages with mime type text/html
|
||||||
|
* should be sent as html emails (with plain text alternative) or
|
||||||
|
* just sent as translated plain text
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean sendHTMLMessageAsHTMLEmail () {
|
||||||
|
return ((Boolean)get(m_sendHTML)).booleanValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static class PropertyFileParameter extends URLParameter {
|
||||||
|
PropertyFileParameter(String name, int multiplicity, Object defaalt) {
|
||||||
|
super(name, multiplicity, defaalt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doValidate(Object value, ErrorList errors) {
|
||||||
|
super.doValidate(value, errors);
|
||||||
|
|
||||||
|
if (!errors.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
getProperties((URL) value);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
errors.add(new ParameterError(this, ioe));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Properties getProperties(URL url) throws IOException {
|
||||||
|
Properties props = new Properties();
|
||||||
|
props.load(url.openStream());
|
||||||
|
return props;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
waf.mail.debug.title=Mail debug flag
|
||||||
|
waf.mail.debug.purpose=Enables or disables debugging for the mail component
|
||||||
|
waf.mail.debug.example=true
|
||||||
|
waf.mail.debug.format=true|false
|
||||||
|
|
||||||
|
waf.mail.javamail.configuration.title=JavaMail properties URL
|
||||||
|
waf.mail.javamail.configuration.purpose=URL of properties file used to create JavaMail session for outgoing mail
|
||||||
|
waf.mail.javamail.configuration.example=file:///etc/javamail.properties
|
||||||
|
waf.mail.javamail.configuration.format=[url]
|
||||||
|
|
||||||
|
waf.mail.send_html_mail.title=Send html messages as html emails
|
||||||
|
waf.mail.send_html_mail.purpose=Determine whether to send html messages as html, or convert to plain mail
|
||||||
|
waf.mail.send_html_mail.example=true|false
|
||||||
|
waf.mail.send_html_mail.format=[boolean]
|
||||||
Loading…
Reference in New Issue