diff --git a/SoObjects/SOGo/SOGoMailer.h b/SoObjects/SOGo/SOGoMailer.h index 2f7cc06c7..1c9761e2e 100644 --- a/SoObjects/SOGo/SOGoMailer.h +++ b/SoObjects/SOGo/SOGoMailer.h @@ -42,7 +42,7 @@ + (SOGoMailer *) mailerWithDomainDefaults: (SOGoDomainDefaults *) dd; - (id) initWithDomainDefaults: (SOGoDomainDefaults *) dd; - +- (BOOL) requiresAuthentication; - (NSException *) sendMailData: (NSData *) data toRecipients: (NSArray *) recipients sender: (NSString *) sender diff --git a/SoObjects/SOGo/SOGoMailer.m b/SoObjects/SOGo/SOGoMailer.m index f336105d4..35177c738 100644 --- a/SoObjects/SOGo/SOGoMailer.m +++ b/SoObjects/SOGo/SOGoMailer.m @@ -181,6 +181,11 @@ [super dealloc]; } +- (BOOL) requiresAuthentication +{ + return ![mailingMechanism isEqualToString: @"sendmail"] && authenticationType; +} + - (NSException *) _sendmailSendData: (NSData *) mailData toRecipients: (NSArray *) recipients sender: (NSString *) sender diff --git a/Tools/SOGoEAlarmsNotifier.m b/Tools/SOGoEAlarmsNotifier.m index b5521d8d4..e2b067d0e 100644 --- a/Tools/SOGoEAlarmsNotifier.m +++ b/Tools/SOGoEAlarmsNotifier.m @@ -168,6 +168,13 @@ owner = [SOGoUser userWithLogin: ownerId]; mailer = [SOGoMailer mailerWithDomainDefaults: [owner domainDefaults]]; + if (!staticAuthenticator && [mailer requiresAuthentication]) + { + fprintf (stderr, "Specify the file containing credentials to use for SMTP AUTH.\n" + "Use -h for help.\n"); + return; + } + localContext = [WOContext context]; [localContext setActiveUser: owner]; app = [[WOApplication alloc] initWithName: @"SOGo"]; @@ -177,7 +184,7 @@ [rm release]; [app _setCurrentContext:localContext]; - userFolder = [[localContext activeUser] homeFolderInContext: localContext ]; + userFolder = [[localContext activeUser] homeFolderInContext: localContext]; folders = [userFolder privateCalendars: @"Calendar" inContext: localContext]; @@ -221,26 +228,28 @@ - (BOOL) run { + NSArray *arguments, *alarms; NSCalendarDate *startDate, *toDate; - SOGoEMailAlarmsManager *eaMgr; - NSMutableArray *metadata; - iCalEntityObject *entity; - SOGoCredentialsFile *cf; - NSString *credsFilename; NSDictionary *d; - NSArray *alarms; + NSMutableArray *metadata; + NSString *credsFilename; + SOGoCredentialsFile *cf; + SOGoEMailAlarmsManager *eaMgr; + iCalEntityObject *entity; int count, max; [[SOGoProductLoader productLoader] loadAllProducts: NO]; - if ([[NSUserDefaults standardUserDefaults] stringForKey: @"h"]) + arguments = [[NSProcessInfo processInfo] arguments]; + credsFilename = [[NSUserDefaults standardUserDefaults] stringForKey: @"p"]; + + if ([arguments count] > 1 && ([[arguments objectAtIndex: 1] isEqualToString: @"-h"] || !credsFilename)) { [self usage]; return YES; } - credsFilename = [[NSUserDefaults standardUserDefaults] stringForKey: @"p"]; if (credsFilename) { cf = [SOGoCredentialsFile credentialsFromFile: credsFilename];