exchange online
2922 TopicsHow to Send-As a Distribution Group (via SSIS ScriptTask) via Exchange Online using Modern Auth?
We have a SQL Server Integration Services (SSIS) task that retrieves emails from a table in our Customer Relationship Management (CRM) system. The emails contain From:, To:, Cc, and Bcc: addresses, in addition to the body and other data. The SSIS task then reads the data, connects to a local on-premises Exchange 2016 server to send the emails, and allows the SQL Server IP address to log in anonymously and send emails as any user in the From field, provided the address is valid on the Exchange server. We are considering removing the local on-premises Exchange 2016 server and need to modify the SSIS task to connect to Exchange Online to send the emails. We are exploring the use of Modern Authentication, App Registration, and Microsoft Graph to send the emails. The From addresses in the CRM can be an address of a User Mailbox, Shared Mailbox, or Distribution Group. Based on my research, it appears there is no way to send emails as a Distribution Group via Microsoft Graph. Therefore, I am forced to use SmtpClient and logging in as a user with Send-As permissions on all of the groups, which has its own drawbacks. What is the proper way to programmatically send as a Distribution Group? We have about 40 Groups we send as.24Views0likes1CommentRecurring booking issues // 'AutomateProcessing' enabled on delegate approval
Having issues with our 9 rooms just behaving terribly - bookings just do not sync between different users. Have tried wiping and rebuilding the permissions. Still having issues. Have tried using Exchange AC's built in 'Resource Booking' report - this actually does not show me any bookings for the last three days. Have tried using the AC's 'Calendar Logs' report, which gives me the following output for a specific booking. Things I notice: 1) a lot of 'Not Found' params and 'InvalidSchemaPropertyName' params. 2) The timestamps are all in UTC, despite us being AST. I'm not sure if either of these have anything to do with bookings not sync'ing between users or not. CoPilot has suggested they may be influencing things - and you'd think in that case you'd be able to edit them without powershell, but.. CoPilot pulls from Microsoft docs. . Below is the output from the 'Calendar Logs' report - I can't really make sense of it. This was originally made in the web client, then checked on Outlook - I'm not sure how these relate, or if there's even a way to check this? CleanGlobalObjectId OriginalLastModifiedTime CalendarLogRequestId CalendarLogTriggerAction CalendarProcessed ExternalSharingMasterId OriginalClientInfoString ClientInfoString ItemClass OriginalStartDate ItemVersion ParentDisplayName OriginalParentDisplayName AppointmentAuxiliaryFlags AppointmentRecurrenceBlob AppointmentLastSequenceNumber AppointmentRecurring AppointmentSequenceNumber AppointmentState CalendarOriginatorId CalendarItemType ChangeList ClientIntent CreationTime DisplayAttendeesAll DisplayAttendeesCc DisplayAttendeesTo EndTime EndTimeZone FreeBusyStatus From GlobalObjectId HijackedMeeting IsCopyOnWriteItem IsException IsMeeting IsRecurring IsResponseRequested IsAllDayEvent IsCancelled IsProcessed IsSoftDeleted ItemId LastModifiedTime Location MapiIsAllDayEvent ResponseType MeetingRequestType OriginalCreationTime ReceivedBy ReceivedRepresenting RecurrencePattern ResponseState ResponsibleUserName SenderEmailAddress SentRepresentingEmailAddress SentRepresentingDisplayName StartTime StartTimeZone SubjectProperty TimeZone TimeZoneBlob TimeZoneDefinitionEnd TimeZoneDefinitionRecurring TimeZoneDefinitionStart IsSeriesCancelled IsOrganizerProperty 040000008200E00074C5B7101A82E00800000000A83A46BDB4F4DB01000000000000000010000000A5E908D6D17BB44B9B66DF5493C5B457 7/14/25 11:45 a0a4dc98-5a84-3da9-8092-5e0b2929dd82 Create NotFound NotFound null Client=REST;;;Client=REST;InternalCalendarSharing (Client=OWA;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0;)[AppId=1c06531d-b56d-4cfb-8ad0-53c87d70093e]; IPM.Appointment NotFound 1 Calendar Calendar NotFound NotFound NotFound FALSE 0 None null Single 763243616C656E6461724C6F6767696E67F4CD00000000000095B600000400000075B1000000000000F4EC00007C000000F48C00000000000074C600000000000074E400000000000095EA000000000000958A000000000000F5A9000000000000F5A900000000000075DD00000000000095E2000000000000F487000078000000F4BB000000000000F4FB000000000000F4DB000000000000F4E3000000000000F483000000000000F4E3000000000000F483000000000000F4D3000000000000F4EB000000000000F48B000000000000F5A9000000000000F497000000000000F4D7000000000000F4CB000079000000F4BB000000000000F4FB000000000000F4AB000000000000F48B000000000000F5A9000000000000F497000000000000F4D7000000000000F497000000000000F4D70000000000004C8C010000000000748900006A0000004C8C010000000000748900006A0000004C8C010000000000748900006A00000075EF000000000000F5F900000000000034A500000000000034E5000000000000948200005D00000074A700006E000000749600000000000074D60000000000001CC60000000000001C86000000000000F497000000000000F4D7000000000000F497000000000000F4D70000000000001CBA0000000000001C86000000000000F497000000000000F4D7000000000000F497000000 None null NotFound NotFound NotFound ######## null Busy Whisper Room" <email address removed for privacy reasons>" 040000008200E00074C5B7101A82E00800000000A83A46BDB4F4DB01000000000000000010000000A5E908D6D17BB44B9B66DF5493C5B457 NotFound null FALSE FALSE FALSE TRUE FALSE FALSE NotFound NotFound null ######## FALSE Organizer NotFound null NotFound NotFound NotFound my user InvalidSchemaPropertyName InvalidSchemaPropertyName Whisper Room 7/14/25 23:30 null Nayan (UTC-04:00) Atlantic Time (Canada) null null null null NotFound TRUE 040000008200E00074C5B7101A82E00800000000FA708467B8F4DB01000000000000000010000000F867D9C874F9174F934BDB74C4FBE325 7/14/25 12:11 60d5d7fc-a7ec-ae24-d03d-22ff648dcf18 Create NotFound NotFound null Client=REST;;;Client=REST;InternalCalendarSharing (Client=OWA;Action=ViaProxy)[AppId=1c06531d-b56d-4cfb-8ad0-53c87d70093e]; IPM.Appointment NotFound 1 Calendar Calendar NotFound NotFound NotFound FALSE 0 None null Single 763243616C656E6461724C6F6767696E67F4CD00000000000095B600000400000075B1000000000000F4EC00007C000000F48C00000000000074C600000000000074E400000000000095EA000000000000958A000000000000F5A9000000000000F5A900000000000075DD00000000000095E2000000000000F487000078000000F4BB000000000000F4FB000000000000F4DB000000000000F4E3000000000000F483000000000000F4E3000000000000F483000000000000F4D3000000000000F4EB000000000000F48B000000000000F5A9000000000000F497000000000000F4D7000000000000F4CB000079000000F4BB000000000000F4FB000000000000F4AB000000000000F48B000000000000F5A9000000000000F497000000000000F4D7000000000000F497000000000000F4D70000000000004C8C010000000000748900006A0000004C8C010000000000748900006A0000004C8C010000000000748900006A0000004C8C010000000000748900006A00000075EF000000000000F5F900000000000034A500000000000034E5000000000000948200005D00000074A700006E000000749600000000000074D60000000000001CC60000000000001C86000000000000F497000000000000F4D7000000000000F497000000000000F4D70000000000004C8C010000000000748900006A0000004C8C010000 None null NotFound NotFound NotFound ######## null Busy Whisper Room" <email address removed for privacy reasons>" 040000008200E00074C5B7101A82E00800000000FA708467B8F4DB01000000000000000010000000F867D9C874F9174F934BDB74C4FBE325 NotFound null FALSE FALSE FALSE TRUE FALSE FALSE NotFound NotFound null ######## FALSE Organizer NotFound null NotFound NotFound NotFound my user InvalidSchemaPropertyName InvalidSchemaPropertyName Whisper Room 7/14/25 11:30 null Nayan (UTC-04:00) Atlantic Time (Canada) null null null null NotFound TRUE sorry for the format - it wouldn't let me post it any other way. The spreadsheet is attached tho I've used the following cmdlets in PowerShell to dig into this issue - Get-CalendarProcessing, Get-MailboxFolderPermissions, Get-MailboxRegionalConfig. These are setup with 2 delegate editors (as in, people who approve/decline meeting invites) and 6 editors (people who can book without needing approval, and do not have the Delegate flag. All 8 have SendAs permission, so bookings dont just show under their name.. Weirdly, these rooms look to have AutomateProcessing set to AutoAccept, despite very clearly being configured not to do this in EAC. THIS article of course does not mention the AutomateProcessing param except for in 3 examples - one of which is a delegation scenario where logically, automate processing would be off. I have enough experience to know not to trust an official microsoft KB. PS C:\Users\me> get-CalendarProcessing -identity "whisperroom" | fl AutomateProcessing : AutoAccept <<<<<<<<<<<<<< what? AllowConflicts : False AllowDistributionGroup : True AllowMultipleResources : True BookingType : Standard BookingWindowInDays : 180 MaximumDurationInMinutes : 1440 MinimumDurationInMinutes : 0 AllowRecurringMeetings : True EnforceAdjacencyAsOverlap : False EnforceCapacity : False EnforceSchedulingHorizon : True ScheduleOnlyDuringWorkHours : False ConflictPercentageAllowed : 0 MaximumConflictInstances : 0 ForwardRequestsToDelegates : True DeleteAttachments : True DeleteComments : True RemovePrivateProperty : True DeleteSubject : True AddOrganizerToSubject : True DeleteNonCalendarItems : True TentativePendingApproval : True EnableResponseDetails : True OrganizerInfo : True ResourceDelegates : {delegates - the 2 users with SharingPermissionFlag:Delegate} RequestOutOfPolicy : {} AllRequestOutOfPolicy : False BookInPolicy : {} AllBookInPolicy : False RequestInPolicy : {} AllRequestInPolicy : True AddAdditionalResponse : False AdditionalResponse : RemoveOldMeetingMessages : True AddNewRequestsTentatively : True ProcessExternalMeetingMessages : False RemoveForwardedMeetingNotifications : False AutoRSVPConfiguration : Microsoft.Exchange.Data.Storage.AutoRSV PConfiguration RemoveCanceledMeetings : False EnableAutoRelease : False PostReservationMaxClaimTimeInMinutes : 10 DnToOidMappings : {} MailboxOwnerId : Whisper Room Identity : Whisper Room IsValid : True ObjectState : Changed I'm getting really frustrated by the incoherence between backend and frontend configuration, no actual dev-written documentation, and that there's 5-6 different cmdlets that affect calendar processing, and they aren't just all under 'Get-CalendarProcessing' . I DO have mailbox auditing enabled for these resources, I'm just reluctant to add MORE logs into the mix, when all the current ones have done is make things less clear. Would love some help44Views0likes1CommentOME Template Branding
Dear Community, Question is - Is It possible to delete the Microsoft "Learn More" Link at the end of the Template? Do you have any Idea what can cause this issue? I really appreciate any help you can provide! I can change everything in the Template except "Learn More" There is no Parameter to change it.379Views0likes1Comment