From ee9899fe3d6aa7bf694f959a8e4f09faa39e737a Mon Sep 17 00:00:00 2001 From: smizrahi Date: Fri, 13 Oct 2023 10:29:42 +0200 Subject: [PATCH] fix(mail): Fix duplication of images when saving draft. Fixes #5888 --- SoObjects/Mailer/SOGoDraftObject.h | 2 +- SoObjects/Mailer/SOGoDraftObject.m | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/SoObjects/Mailer/SOGoDraftObject.h b/SoObjects/Mailer/SOGoDraftObject.h index 031d75eaa..05b7dd339 100644 --- a/SoObjects/Mailer/SOGoDraftObject.h +++ b/SoObjects/Mailer/SOGoDraftObject.h @@ -121,7 +121,7 @@ /* NGMime representations */ -- (NSData *) mimeMessageForRecipient: (NSString *) theRecipient; +- (NSData *)mimeMessageForRecipient:(NSString *)theRecipient extractingImages:(BOOL)extractImage; /* operations */ - (NSArray *) allRecipients; diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index 79ad482a3..15bf83c88 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -588,7 +588,7 @@ static NSString *userAgent = nil; id result; error = nil; - message = [self mimeMessageForRecipient: nil]; + message = [self mimeMessageForRecipient: nil extractingImages: NO]; if (!message) { @@ -2006,7 +2006,7 @@ static NSString *userAgent = nil; // // Return a NGMimeMessage object with inline HTML images () extracted as attachments (). // -- (NSData *) mimeMessageForRecipient: (NSString *) theRecipient +- (NSData *) mimeMessageForRecipient: (NSString *) theRecipient extractingImages: (BOOL)extractImage { NGMimeMessageGenerator *generator, *partGenerator; NGMimeMessage *mimeMessage; @@ -2019,7 +2019,7 @@ static NSString *userAgent = nil; // Nothing to sign or encrypt, let's generate the message and return immediately if (![self sign] && ![self encrypt]) { - mimeMessage = [self mimeMessageWithHeaders: nil excluding: nil extractingImages: YES bodyOnly: NO]; + mimeMessage = [self mimeMessageWithHeaders: nil excluding: nil extractingImages: extractImage bodyOnly: NO]; if (mimeMessage) { generator = [[[NGMimeMessageGenerator alloc] init] autorelease]; @@ -2033,7 +2033,7 @@ static NSString *userAgent = nil; partGenerator = [[[NGMimePartGenerator alloc] init] autorelease]; content = [partGenerator generateMimeFromPart: [self mimeMessageWithHeaders: nil excluding: nil - extractingImages: YES + extractingImages: extractImage bodyOnly: YES]]; if ([self sign]) @@ -2300,9 +2300,9 @@ static NSString *userAgent = nil; recipient = [recipients objectAtIndex: i]; if ([[context activeUser] hasEmail: recipient]) - message = messageForSent = [self mimeMessageForRecipient: nil]; + message = messageForSent = [self mimeMessageForRecipient: nil extractingImages: YES]; else - message = [self mimeMessageForRecipient: recipient]; + message = [self mimeMessageForRecipient: recipient extractingImages: YES]; if (!message) return [NSException exceptionWithHTTPStatus: 500 @@ -2323,12 +2323,12 @@ static NSString *userAgent = nil; // If the current user isn't part of the recipient list for encrypted emails // let's generate a crypted email for its sent folder. if (!messageForSent) - messageForSent = [self mimeMessageForRecipient: nil]; + messageForSent = [self mimeMessageForRecipient: nil extractingImages: YES]; } else { // Encryption is done or not, if we didn't have to. - message = messageForSent = [self mimeMessageForRecipient: nil]; + message = messageForSent = [self mimeMessageForRecipient: nil extractingImages: YES]; if (!message) return [NSException exceptionWithHTTPStatus: 500 @@ -2401,7 +2401,7 @@ static NSString *userAgent = nil; NSString *str; NSData *message; - message = [self mimeMessageForRecipient: nil]; + message = [self mimeMessageForRecipient: nil extractingImages: NO]; if (message) { str = [[NSString alloc] initWithData: message