mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-12 03:45:08 +00:00
propagate from branch 'ca.inverse.sogo.1_3_15' (head d8a0de208631b406144e740ab09b4e5a92f0e66c)
to branch 'ca.inverse.sogo' (head 356e7649cb18120413fdf16e371d74fbcd28c3e1) Monotone-Parent: 356e7649cb18120413fdf16e371d74fbcd28c3e1 Monotone-Parent: d8a0de208631b406144e740ab09b4e5a92f0e66c Monotone-Revision: aaa516c8e0f7391e21eda557b30eb4c3c80b14bc Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-04-25T20:56:41 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2012-04-25 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/Mailer/SOGoDraftObject.m
|
||||
(-bodyPartForAttachmentWithName:): force conversion of rfc822
|
||||
content to quoted-printable, since it would otherwise risk passing
|
||||
8bit data via the "APPEND" command.
|
||||
|
||||
2012-04-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* UI/WebServerResources/SchedulerUI.js (updateCalendarStatus): if
|
||||
|
||||
@@ -4,10 +4,17 @@ New Features
|
||||
- Sources address books are now exposed in Apple and iOS AddressBook app
|
||||
using the "directory gateway" extension of CardDAV
|
||||
- sogo-tool: new "expire-sessions" command
|
||||
- the all-day events container is now resized progressively
|
||||
- added handling of "BYSETPOS" for "BYDAY" sets in monthly recurrence
|
||||
calculator
|
||||
- new domain default (SOGoMailCustomFromEnabled) to allow users to change
|
||||
their "from" and "reply-to" headers
|
||||
|
||||
Enhancements
|
||||
- Updated Spanish (Argentina) translation
|
||||
- updated Spanish (Argentina) translation
|
||||
- updated CKEditor to version 3.6.3
|
||||
- automatically add/remove attendees to recurrence exceptions when they are
|
||||
being added to the master event
|
||||
|
||||
Bug Fixes
|
||||
- fixed wrong date validation in preferences module affecting French users
|
||||
|
||||
@@ -1119,7 +1119,7 @@ static NSString *userAgent = nil;
|
||||
NGMimeBodyPart *bodyPart;
|
||||
NSString *s;
|
||||
NSData *content;
|
||||
BOOL attachAsString, is7bit;
|
||||
BOOL attachAsString, force7bitText;
|
||||
NSString *p;
|
||||
id body;
|
||||
|
||||
@@ -1134,7 +1134,7 @@ static NSString *userAgent = nil;
|
||||
return nil;
|
||||
}
|
||||
attachAsString = NO;
|
||||
is7bit = NO;
|
||||
force7bitText = NO;
|
||||
|
||||
/* prepare header of body part */
|
||||
|
||||
@@ -1145,7 +1145,7 @@ static NSString *userAgent = nil;
|
||||
if ([s hasPrefix: @"text/plain"] || [s hasPrefix: @"text/html"])
|
||||
attachAsString = YES;
|
||||
else if ([s hasPrefix: @"message/rfc822"])
|
||||
is7bit = YES;
|
||||
force7bitText = YES;
|
||||
}
|
||||
if ((s = [self contentDispositionForAttachmentWithName:_name]))
|
||||
{
|
||||
@@ -1163,8 +1163,8 @@ static NSString *userAgent = nil;
|
||||
|
||||
content = [[NSData alloc] initWithContentsOfMappedFile:p];
|
||||
|
||||
s = [[NSString alloc] initWithData:content
|
||||
encoding:[NSString defaultCStringEncoding]];
|
||||
s = [[NSString alloc] initWithData: content
|
||||
encoding: [NSString defaultCStringEncoding]];
|
||||
if (s != nil) {
|
||||
body = s;
|
||||
[content release]; content = nil;
|
||||
@@ -1176,16 +1176,6 @@ static NSString *userAgent = nil;
|
||||
content = nil;
|
||||
}
|
||||
}
|
||||
else if (is7bit) {
|
||||
/*
|
||||
Note: Apparently NGMimeFileData objects are not processed by the MIME
|
||||
generator!
|
||||
*/
|
||||
body = [[NGMimeFileData alloc] initWithPath:p removeFile:NO];
|
||||
[map setObject: @"7bit" forKey: @"content-transfer-encoding"];
|
||||
[map setObject:[NSNumber numberWithInt:[body length]]
|
||||
forKey: @"content-length"];
|
||||
}
|
||||
else {
|
||||
/*
|
||||
Note: in OGo this is done in LSWImapMailEditor.m:2477. Apparently
|
||||
@@ -1194,12 +1184,21 @@ static NSString *userAgent = nil;
|
||||
NSData *encoded;
|
||||
|
||||
content = [[NSData alloc] initWithContentsOfMappedFile:p];
|
||||
encoded = [content dataByEncodingBase64];
|
||||
[content release]; content = nil;
|
||||
|
||||
[map setObject: @"base64" forKey: @"content-transfer-encoding"];
|
||||
|
||||
if (force7bitText)
|
||||
{
|
||||
encoded = [content dataByEncodingQuotedPrintable];
|
||||
[map setObject: @"quoted-printable"
|
||||
forKey: @"content-transfer-encoding"];
|
||||
}
|
||||
else
|
||||
{
|
||||
encoded = [content dataByEncodingBase64];
|
||||
[map setObject: @"base64" forKey: @"content-transfer-encoding"];
|
||||
}
|
||||
[map setObject:[NSNumber numberWithInt:[encoded length]]
|
||||
forKey: @"content-length"];
|
||||
[content release]; content = nil;
|
||||
|
||||
/* Note: the -init method will create a temporary file! */
|
||||
body = [[NGMimeFileData alloc] initWithBytes:[encoded bytes]
|
||||
@@ -1390,7 +1389,7 @@ static NSString *userAgent = nil;
|
||||
[map setObject: [self _quoteSpecials: from] forKey: @"from"];
|
||||
}
|
||||
|
||||
if (replyTo = [headers objectForKey: @"reply-to"])
|
||||
if ((replyTo = [headers objectForKey: @"reply-to"]))
|
||||
[map setObject: replyTo forKey: @"reply-to"];
|
||||
|
||||
if (inReplyTo)
|
||||
|
||||
Reference in New Issue
Block a user