You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2008/10/09 23:12:25 UTC
svn commit: r703261 - in /logging/log4j/trunk/src: changes/changes.xml
main/java/org/apache/log4j/net/SMTPAppender.java
Author: carnold
Date: Thu Oct 9 14:12:25 2008
New Revision: 703261
URL: http://svn.apache.org/viewvc?rev=703261&view=rev
Log:
Bug 25355: Support SSL transport in SMTPAppender
Modified:
logging/log4j/trunk/src/changes/changes.xml
logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java
Modified: logging/log4j/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=703261&r1=703260&r2=703261&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Thu Oct 9 14:12:25 2008
@@ -63,6 +63,7 @@
<action action="fix" issue="44386">NTEventLogAppender.dll for 64-bit editions for Microsoft Windows.</action>
<action action="fix" issue="45721">Add configuration of ThrowableRenderers and add org.apache.log4j.EnhancedThrowableRenderer.</action>
<action action="fix" issue="45969">SMTPAppender does not force evaluation of message at request time</action>
+ <action action="fix" issue="25355">Support SSL transport in SMTPAppender</action>
</release>
Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java?rev=703261&r1=703260&r2=703261&view=diff
==============================================================================
--- logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java (original)
+++ logging/log4j/trunk/src/main/java/org/apache/log4j/net/SMTPAppender.java Thu Oct 9 14:12:25 2008
@@ -67,6 +67,8 @@
This class has implemented UnrecognizedElementHandler since 1.2.15.
+ Since 1.2.16, SMTP over SSL is supported by setting SMTPProtocol to "smpts".
+
@author Ceki Gülcü
@since 1.0 */
public class SMTPAppender extends AppenderSkeleton
@@ -85,6 +87,8 @@
private String smtpHost;
private String smtpUsername;
private String smtpPassword;
+ private String smtpProtocol;
+ private int smtpPort = -1;
private boolean smtpDebug = false;
private int bufferSize = 512;
private boolean locationInfo = false;
@@ -177,13 +181,22 @@
} catch(SecurityException ex) {
props = new Properties();
}
+
+ String prefix = "mail.smtp";
+ if (smtpProtocol != null) {
+ props.put("mail.transport.protocol", smtpProtocol);
+ prefix = "mail." + smtpProtocol;
+ }
if (smtpHost != null) {
- props.put("mail.smtp.host", smtpHost);
+ props.put(prefix + ".host", smtpHost);
+ }
+ if (smtpPort > 0) {
+ props.put(prefix + ".port", String.valueOf(smtpPort));
}
Authenticator auth = null;
if(smtpPassword != null && smtpUsername != null) {
- props.put("mail.smtp.auth", "true");
+ props.put(prefix + ".auth", "true");
auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(smtpUsername, smtpPassword);
@@ -191,6 +204,9 @@
};
}
Session session = Session.getInstance(props, auth);
+ if (smtpProtocol != null) {
+ session.setProtocolForAddress("rfc822", smtpProtocol);
+ }
if (smtpDebug) {
session.setDebug(smtpDebug);
}
@@ -608,6 +624,49 @@
return false;
}
+ /**
+ * Get transport protocol.
+ * Typically null or "smtps".
+ *
+ * @return transport protocol, may be null.
+ * @since 1.2.16
+ */
+ public final String getSMTPProtocol() {
+ return smtpProtocol;
+ }
+
+ /**
+ * Set transport protocol.
+ * Typically null or "smtps".
+ *
+ * @param val transport protocol, may be null.
+ * @since 1.2.16
+ */
+ public final void setSMTPProtocol(final String val) {
+ smtpProtocol = val;
+ }
+
+ /**
+ * Get port.
+ *
+ * @return port, negative values indicate use of default ports for protocol.
+ * @since 1.2.16
+ */
+ public final int getSMTPPort() {
+ return smtpPort;
+ }
+
+ /**
+ * Set port.
+ *
+ * @param val port, negative values indicate use of default ports for protocol.
+ * @since 1.2.16
+ */
+ public final void setSMTPPort(final int val) {
+ smtpPort = val;
+ }
+
+
}
class DefaultEvaluator implements TriggeringEventEvaluator {
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org