diff --git a/ChangeLog b/ChangeLog index 23d235714..1b704939c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-03-22 Ludovic Marcotte + + * SoObjects/Mailer/SOGoDraftObject.m - we strip + the bcc header prior to sending mails. + 2010-03-22 Wolfgang Sourdeau * UI/Scheduler/UIxCalListingActions.m diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index 3b922df9c..e08aa0c85 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -1211,11 +1211,12 @@ static NSString *userAgent = @"SOGoMail 1.0"; } - (NGMutableHashMap *) mimeHeaderMapWithHeaders: (NSDictionary *) _headers + excluding: (NSArray *) _exclude { + NSString *s, *dateString; NGMutableHashMap *map; - NSArray *emails; - NSString *s, *dateString; - id from, replyTo; + id from, replyTo; + NSArray *emails; map = [[[NGMutableHashMap alloc] initWithCapacity:16] autorelease]; @@ -1273,10 +1274,20 @@ static NSString *userAgent = @"SOGoMail 1.0"; [self _addHeaders: _headers toHeaderMap: map]; + // We remove what we have to... + if (_exclude) + { + int i; + + for (i = 0; i < [_exclude count]; i++) + [map removeAllObjectsForKey: [_exclude objectAtIndex: i]]; + } + return map; } - (NGMimeMessage *) mimeMessageWithHeaders: (NSDictionary *) _headers + excluding: (NSArray *) _exclude { NGMutableHashMap *map; NSArray *bodyParts; @@ -1284,7 +1295,8 @@ static NSString *userAgent = @"SOGoMail 1.0"; message = nil; - map = [self mimeHeaderMapWithHeaders: _headers]; + map = [self mimeHeaderMapWithHeaders: _headers + excluding: _exclude]; if (map) { [self debugWithFormat: @"MIME Envelope: %@", map]; @@ -1313,7 +1325,7 @@ static NSString *userAgent = @"SOGoMail 1.0"; - (NGMimeMessage *) mimeMessage { - return [self mimeMessageWithHeaders: nil]; + return [self mimeMessageWithHeaders: nil excluding: nil]; } - (NSData *) mimeMessageAsData @@ -1376,7 +1388,13 @@ static NSString *userAgent = @"SOGoMail 1.0"; error = (NSException *) sentFolder; else { - message = [self mimeMessageAsData]; + // We strip the BCC fields prior sending any mails + NGMimeMessageGenerator *generator; + + generator = [[[NGMimeMessageGenerator alloc] init] autorelease]; + message = [generator generateMimeFromPart: [self mimeMessageWithHeaders: nil + excluding: [NSArray arrayWithObject: @"bcc"]]]; + dd = [[context activeUser] domainDefaults]; error = [[SOGoMailer mailerWithDomainDefaults: dd] sendMailData: message