parent
51e07fc306
commit
c5922b07aa
1
NEWS
1
NEWS
|
@ -39,6 +39,7 @@ Bug fixes
|
|||
- fixed missing characters in shared folder names over ActiveSync (#2709)
|
||||
- fixed reply and forward mail templates for Brazilian Portuguese (#2738)
|
||||
- fixed newline in signature when forwarding a message as attachment in HTML mode (#2787)
|
||||
- fixed restoration of options (priority & return receipt) when editing a draft (#193)
|
||||
|
||||
2.2.3 (2014-04-03)
|
||||
------------------
|
||||
|
|
|
@ -266,7 +266,7 @@ static NSString *userAgent = nil;
|
|||
{
|
||||
id headerValue;
|
||||
unsigned int count;
|
||||
NSString *messageID, *priority, *pureSender, *replyTo;
|
||||
NSString *messageID, *priority, *pureSender, *replyTo, *receipt;
|
||||
|
||||
for (count = 0; count < 8; count++)
|
||||
{
|
||||
|
@ -285,6 +285,32 @@ static NSString *userAgent = nil;
|
|||
[headers setObject: messageID forKey: @"message-id"];
|
||||
}
|
||||
|
||||
priority = [newHeaders objectForKey: @"X-Priority"];
|
||||
if (priority)
|
||||
{
|
||||
// newHeaders come from MIME message; convert X-Priority to Web representation
|
||||
[headers setObject: priority forKey: @"X-Priority"];
|
||||
[headers removeObjectForKey: @"priority"];
|
||||
if ([priority isEqualToString: @"1 (Highest)"])
|
||||
{
|
||||
[headers setObject: @"HIGHEST" forKey: @"priority"];
|
||||
}
|
||||
else if ([priority isEqualToString: @"2 (High)"])
|
||||
{
|
||||
[headers setObject: @"HIGH" forKey: @"priority"];
|
||||
}
|
||||
else if ([priority isEqualToString: @"4 (Low)"])
|
||||
{
|
||||
[headers setObject: @"LOW" forKey: @"priority"];
|
||||
}
|
||||
else if ([priority isEqualToString: @"5 (Lowest)"])
|
||||
{
|
||||
[headers setObject: @"LOWEST" forKey: @"priority"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// newHeaders come from Web form; convert priority to MIME header representation
|
||||
priority = [newHeaders objectForKey: @"priority"];
|
||||
if (!priority || [priority isEqualToString: @"NORMAL"])
|
||||
{
|
||||
|
@ -306,6 +332,11 @@ static NSString *userAgent = nil;
|
|||
{
|
||||
[headers setObject: @"5 (Lowest)" forKey: @"X-Priority"];
|
||||
}
|
||||
if (priority)
|
||||
{
|
||||
[headers setObject: priority forKey: @"priority"];
|
||||
}
|
||||
}
|
||||
|
||||
replyTo = [headers objectForKey: @"replyTo"];
|
||||
if ([replyTo length] > 0)
|
||||
|
@ -314,14 +345,30 @@ static NSString *userAgent = nil;
|
|||
}
|
||||
[headers removeObjectForKey: @"replyTo"];
|
||||
|
||||
if ([[newHeaders objectForKey: @"receipt"] isEqualToString: @"true"])
|
||||
receipt = [newHeaders objectForKey: @"Disposition-Notification-To"];
|
||||
if ([receipt length] > 0)
|
||||
{
|
||||
pureSender = [[newHeaders objectForKey: @"from"] pureEMailAddress];
|
||||
if (pureSender)
|
||||
[headers setObject: pureSender forKey: @"Disposition-Notification-To"];
|
||||
[headers setObject: @"true" forKey: @"receipt"];
|
||||
[headers setObject: receipt forKey: @"Disposition-Notification-To"];
|
||||
}
|
||||
else
|
||||
{
|
||||
receipt = [newHeaders objectForKey: @"receipt"];
|
||||
if ([receipt isEqualToString: @"true"])
|
||||
{
|
||||
[headers setObject: receipt forKey: @"receipt"];
|
||||
pureSender = [[newHeaders objectForKey: @"from"] pureEMailAddress];
|
||||
if (pureSender)
|
||||
{
|
||||
[headers setObject: pureSender forKey: @"Disposition-Notification-To"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[headers removeObjectForKey: @"receipt"];
|
||||
[headers removeObjectForKey: @"Disposition-Notification-To"];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (NSDictionary *) headers
|
||||
|
@ -805,8 +852,10 @@ static NSString *userAgent = nil;
|
|||
{
|
||||
NSString *subject, *msgid;
|
||||
NSMutableDictionary *info;
|
||||
NSDictionary *h;
|
||||
NSMutableArray *addresses;
|
||||
NGImap4Envelope *sourceEnvelope;
|
||||
id priority, receipt;
|
||||
|
||||
[sourceMail fetchCoreInfos];
|
||||
|
||||
|
@ -836,6 +885,15 @@ static NSString *userAgent = nil;
|
|||
[self _addEMailsOfAddresses: [sourceEnvelope replyTo] toArray: addresses];
|
||||
if ([addresses count] > 0)
|
||||
[info setObject: addresses forKey: @"replyTo"];
|
||||
|
||||
h = [sourceMail mailHeaders];
|
||||
priority = [h objectForKey: @"x-priority"];
|
||||
if ([priority isNotEmpty] && [priority isKindOfClass: [NSString class]])
|
||||
[info setObject: (NSString*)priority forKey: @"X-Priority"];
|
||||
receipt = [h objectForKey: @"disposition-notification-to"];
|
||||
if ([receipt isNotEmpty] && [receipt isKindOfClass: [NSString class]])
|
||||
[info setObject: (NSString*)receipt forKey: @"Disposition-Notification-To"];
|
||||
|
||||
[self setHeaders: info];
|
||||
|
||||
[self setText: [sourceMail contentForEditing]];
|
||||
|
@ -1708,7 +1766,7 @@ static NSString *userAgent = nil;
|
|||
NGVCard *card;
|
||||
Class contactGCSEntry;
|
||||
NSMutableArray *recipients;
|
||||
NSString *recipient, *emailAddress, *displayName, *addressBook, *uid;
|
||||
NSString *recipient, *emailAddress, *addressBook, *uid;
|
||||
NSArray *matchingContacts;
|
||||
int i;
|
||||
|
||||
|
@ -1726,7 +1784,6 @@ static NSString *userAgent = nil;
|
|||
parser = [NGMailAddressParser mailAddressParserWithString: recipient];
|
||||
parsedRecipient = [parser parse];
|
||||
emailAddress = [parsedRecipient address];
|
||||
displayName = [parsedRecipient displayName];
|
||||
|
||||
matchingContacts = [contactFolders allContactsFromFilter: emailAddress
|
||||
excludeGroups: YES
|
||||
|
@ -1735,7 +1792,7 @@ static NSString *userAgent = nil;
|
|||
// If we don't get any results from the autocompletion code, we add it..
|
||||
if ([matchingContacts count] == 0)
|
||||
{
|
||||
/* Get the selected addressbook from the user preferences where the new address will be added */
|
||||
// Get the selected addressbook from the user preferences where the new address will be added
|
||||
addressBook = [ud selectedAddressBook];
|
||||
folder = [contactFolders lookupName: addressBook inContext: context acquire: NO];
|
||||
uid = [folder globallyUniqueObjectId];
|
||||
|
|
|
@ -485,6 +485,7 @@ function initMailEditor() {
|
|||
}
|
||||
|
||||
initializePriorityMenu();
|
||||
initializeReturnReceiptMenu();
|
||||
|
||||
configureDragHandle();
|
||||
|
||||
|
@ -563,6 +564,12 @@ function initializePriorityMenu() {
|
|||
$(chosenNode).addClassName("_chosen");
|
||||
}
|
||||
|
||||
function initializeReturnReceiptMenu() {
|
||||
var receipt = $("receipt").value.toLowerCase();
|
||||
if (receipt == "true")
|
||||
$("optionsMenu").down('li').addClassName("_chosen");
|
||||
}
|
||||
|
||||
function onMenuCheckReturnReceipt(event) {
|
||||
event.cancelBubble = true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue