Author: dpsenner
Date: Wed Jun  5 09:28:57 2013
New Revision: 1489769

URL: http://svn.apache.org/r1489769
Log:
LOG4NET-354 added a configuration option that allows to configure the subject 
and body encoding

Modified:
    logging/log4net/trunk/src/Appender/SmtpAppender.cs

Modified: logging/log4net/trunk/src/Appender/SmtpAppender.cs
URL: 
http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/SmtpAppender.cs?rev=1489769&r1=1489768&r2=1489769&view=diff
==============================================================================
--- logging/log4net/trunk/src/Appender/SmtpAppender.cs (original)
+++ logging/log4net/trunk/src/Appender/SmtpAppender.cs Wed Jun  5 09:28:57 2013
@@ -23,6 +23,7 @@
 
 using System;
 using System.IO;
+using System.Text;
 
 #if NET_2_0
 using System.Net.Mail;
@@ -349,6 +350,30 @@ namespace log4net.Appender
         }
 #endif
 
+               /// <summary>
+               /// Gets or sets the subject encoding to be used.
+               /// </summary>
+               /// <remarks>
+               /// The default encoding is the operating system's current ANSI 
codepage.
+               /// </remarks>
+               public Encoding SubjectEncoding
+               {
+                       get { return m_subjectEncoding; }
+                       set { m_subjectEncoding = value; }
+               }
+
+               /// <summary>
+               /// Gets or sets the body encoding to be used.
+               /// </summary>
+               /// <remarks>
+               /// The default encoding is the operating system's current ANSI 
codepage.
+               /// </remarks>
+               public Encoding BodyEncoding
+               {
+                       get { return m_bodyEncoding; }
+                       set { m_bodyEncoding = value; }
+               }
+
                #endregion // Public Instance Properties
 
                #region Override implementation of BufferingAppenderSkeleton
@@ -448,6 +473,7 @@ namespace log4net.Appender
             using (MailMessage mailMessage = new MailMessage())
             {
                 mailMessage.Body = messageBody;
+                               mailMessage.BodyEncoding = m_bodyEncoding;
                 mailMessage.From = new MailAddress(m_from);
                 mailMessage.To.Add(m_to);
                 if (!String.IsNullOrEmpty(m_cc))
@@ -469,6 +495,7 @@ namespace log4net.Appender
 #endif
                 }
                 mailMessage.Subject = m_subject;
+                               mailMessage.SubjectEncoding = m_subjectEncoding;
                 mailMessage.Priority = m_mailPriority;
 
                 // TODO: Consider using SendAsync to send the message without 
blocking. This would be a change in
@@ -480,6 +507,7 @@ namespace log4net.Appender
 
                                MailMessage mailMessage = new MailMessage();
                                mailMessage.Body = messageBody;
+                               mailMessage.BodyEncoding = m_bodyEncoding;
                                mailMessage.From = m_from;
                                mailMessage.To = m_to;
                 if (m_cc != null && m_cc.Length > 0)
@@ -491,6 +519,7 @@ namespace log4net.Appender
                     mailMessage.Bcc = m_bcc;
                 }
                                mailMessage.Subject = m_subject;
+                               mailMessage.SubjectEncoding = m_subjectEncoding;
                                mailMessage.Priority = m_mailPriority;
 
 #if NET_1_1
@@ -548,7 +577,7 @@ namespace log4net.Appender
 
                                SmtpMail.Send(mailMessage);
 #endif // if NET_2_0
-        }
+               }
 
                #endregion // Protected Methods
 
@@ -560,6 +589,8 @@ namespace log4net.Appender
                private string m_from;
                private string m_subject;
                private string m_smtpHost;
+               private Encoding m_subjectEncoding = Encoding.Default;
+               private Encoding m_bodyEncoding = Encoding.Default;
 
                // authentication fields
                private SmtpAuthentication m_authentication = 
SmtpAuthentication.None;


Reply via email to