AW: LOG4NET-405 (was Re: [VOTE] Release Log4Net 1.2.13 based on RC2)

2013-11-14 Thread Dominik Psenner
 Thought of that too, but I decided to let it be in UTF8 cause its the
most
 compatible format nowadays whereas ASCII is somewhat antique. What do
you
 think?

IIUC ASCII would have been the implicit body encoding for log4net 
1.2.12 so when looking for a backwards compatible default this would be
the most natural choice.

I'm not sure whether setting the encoding to UTF8 triggers some sort of
different handling inside of the framweork's SMTP code even if the test
was pure ASCII.  If it doesn't, then I'm fine with UTF8.

Maybe we should send two messages with a body only containing ASCII
letters and compare the raw messages created with encoding set to ASCII
or UTF8 respectively.

Agreed. FWIW, I found this:

http://w3techs.com/technologies/overview/character_encoding/all

and checking a few of my Gmail's mails it seems they default to UTF8. I've
just spammed test messages, this is the code:

static void Main(string[] args)
{
MailAddress from = new
MailAddress(dpsen...@gmail.com);
MailAddress to = new
MailAddress(log4net-dev@logging.apache.org);
string host = smtp.gmail.com;
int port = 25;
NetworkCredential networkCredentials = new
NetworkCredential(f...@gmail.com, bar);
bool enableSsl = true;

Encoding[] subjectEncodings = new Encoding[] {
Encoding.ASCII, Encoding.UTF8 };
Encoding[] bodyEncodings = new Encoding[] {
Encoding.ASCII, Encoding.UTF8 };
Listbyte content = new Listbyte();
for (byte i = 0x20; i = 0x7F; i++)
content.Add(i);
string[] subjects = new string[] { ASCII:\t +
Encoding.ASCII.GetString(content.ToArray()), UTF8:\t +
Encoding.UTF8.GetString(content.ToArray()) };
string[] bodies = new string[] { ASCII:\t +
Encoding.ASCII.GetString(content.ToArray()), UTF8:\t +
Encoding.UTF8.GetString(content.ToArray()) };
foreach (Encoding subjectEncoding in
subjectEncodings)
{
foreach (Encoding bodyEncoding in
bodyEncodings)
{
foreach (string subject in subjects)
{
foreach(string body in
bodies)
{
Console.WriteLine(@
SubjectEncoding={0}
BodyEncoding=   {1}
Subject={2}
Body=   {3}, subjectEncoding.EncodingName,
bodyEncoding.EncodingName, subject, body);

SendMail(from, to,
string.Format([LOG4NET-405 Test Mail] [{0}] [{1}] {2},
subjectEncoding.EncodingName, bodyEncoding.EncodingName, subject),
subjectEncoding, body, bodyEncoding, host, port, networkCredentials,
enableSsl);
}
}
}
}
Console.ReadKey();
}

private static void SendMail(MailAddress from, MailAddress
to, string subject, Encoding subjectEncoding, string body, Encoding
bodyEncoding, string host, int port, NetworkCredential credentials = null,
bool enableSsl = true, SmtpDeliveryMethod deliveryMethod =
SmtpDeliveryMethod.Network)
{
try
{

ServicePointManager.ServerCertificateValidationCallback = new
RemoteCertificateValidationCallback(TrustAllCertificatesPolicy);
using (SmtpClient client = new
SmtpClient(host, port))
{
client.Timeout = 30 * 1000; // 10
seconds
// set properties
client.DeliveryMethod =
deliveryMethod;
client.EnableSsl = enableSsl;
client.UseDefaultCredentials =
(credentials == null);
client.Credentials = credentials;
// send message
using (MailMessage msg = new
MailMessage())
{
msg.From = from;
msg.To.Add(to);

msg.Body = body;
msg.BodyEncoding =
bodyEncoding;

msg.Subject = subject;

Re: LOG4NET-405 (was Re: [VOTE] Release Log4Net 1.2.13 based on RC2)

2013-11-14 Thread Stefan Bodewig
On 2013-11-14, Dominik Psenner wrote:

 I'm not sure whether setting the encoding to UTF8 triggers some sort of
 different handling inside of the framweork's SMTP code even if the test
 was pure ASCII.  If it doesn't, then I'm fine with UTF8.

 and checking a few of my Gmail's mails it seems they default to UTF8. I've
 just spammed test messages, this is the code:

OK, looks as if the main difference was UTF8 yields base64 encoding
while ASCII yields quoted printable.  In general any MUA should be able
to deal with either and the difference likely is no big deal.  I can
live with keeping the default at UTF8.

Stefan


LOG4NET-405 (was Re: [VOTE] Release Log4Net 1.2.13 based on RC2)

2013-11-13 Thread Stefan Bodewig
On 2013-11-13, Dominik Psenner wrote:

 Thought of that too, but I decided to let it be in UTF8 cause its the most
 compatible format nowadays whereas ASCII is somewhat antique. What do you
 think?

IIUC ASCII would have been the implicit body encoding for log4net 
1.2.12 so when looking for a backwards compatible default this would be
the most natural choice.

I'm not sure whether setting the encoding to UTF8 triggers some sort of
different handling inside of the framweork's SMTP code even if the test
was pure ASCII.  If it doesn't, then I'm fine with UTF8.

Maybe we should send two messages with a body only containing ASCII
letters and compare the raw messages created with encoding set to ASCII
or UTF8 respectively.

Stefan