Fix recipients of reply message from Sent mailbox

Fixes #2625
pull/210/head
Francis Lachapelle 2016-06-01 16:22:25 -04:00
parent e07a5f75ec
commit bfda86e31c
2 changed files with 10 additions and 4 deletions

1
NEWS
View File

@ -23,6 +23,7 @@ Bug fixes
- [web] improved CSS sanitizer for HTML messages (#3700)
- [web] fixed toolbar of mail editor when sender address was too long (#3705)
- [web] fixed decoding of filename in attachments (quotes and Cyrillic characters) (#2272)
- [web] fixed recipients when replying from a message in the Sent mailbox (#2625)
- [core] strip X- tags when securing content (#3695)
- [eas] when using EAS/ItemOperations, use IMAP PEEK operation

View File

@ -735,6 +735,7 @@ static NSString *userAgent = nil;
//
- (void) _fillInReplyAddresses: (NSMutableDictionary *) _info
replyToAll: (BOOL) _replyToAll
fromSentMailbox: (BOOL) _fromSentMailbox
envelope: (NGImap4Envelope *) _envelope
{
/*
@ -746,8 +747,6 @@ static NSString *userAgent = nil;
Note: we cannot check reply-to, because Cyrus even sets a reply-to in the
envelope if none is contained in the message itself! (bug or
feature?)
TODO: what about sender (RFC 822 3.6.2)
*/
NSMutableArray *to, *addrs, *allRecipients;
NSArray *envelopeAddresses;
@ -789,7 +788,9 @@ static NSString *userAgent = nil;
addrs = [NSMutableArray array];
envelopeAddresses = [_envelope replyTo];
if ([envelopeAddresses count])
if (_fromSentMailbox)
[addrs setArray: [_envelope to]];
else if ([envelopeAddresses count])
[addrs setArray: envelopeAddresses];
else
[addrs setArray: [_envelope from]];
@ -963,17 +964,21 @@ static NSString *userAgent = nil;
- (void) fetchMailForReplying: (SOGoMailObject *) sourceMail
toAll: (BOOL) toAll
{
BOOL fromSentMailbox;
NSString *msgID;
NSMutableDictionary *info;
NGImap4Envelope *sourceEnvelope;
fromSentMailbox = [[sourceMail container] isKindOfClass: [SOGoSentFolder class]];
[sourceMail fetchCoreInfos];
info = [NSMutableDictionary dictionaryWithCapacity: 16];
[info setObject: [sourceMail subjectForReply] forKey: @"subject"];
sourceEnvelope = [sourceMail envelope];
[self _fillInReplyAddresses: info replyToAll: toAll
[self _fillInReplyAddresses: info
replyToAll: toAll
fromSentMailbox: fromSentMailbox
envelope: sourceEnvelope];
msgID = [sourceEnvelope messageID];
if ([msgID length] > 0)