microsoft_graph_outbound.rb 808 B

1234567891011121314151617181920212223242526272829
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. class Channel::Driver::MicrosoftGraphOutbound < Channel::Driver::BaseEmailOutbound
  3. def deliver(options, attr, notification = false) # rubocop:disable Style/OptionalBooleanParameter
  4. # return if we run import mode
  5. return if Setting.get('import_mode')
  6. attr = prepare_message_attrs(attr)
  7. deliver_mail(attr, notification, MicrosoftGraphOutboundClient, options)
  8. end
  9. class MicrosoftGraphOutboundClient
  10. def initialize(values)
  11. @settings = values
  12. end
  13. def deliver!(mail)
  14. access_token = @settings[:password]
  15. mailbox = @settings[:shared_mailbox].presence || @settings[:user]
  16. MicrosoftGraph
  17. .new(access_token:, mailbox:)
  18. .send_message(mail)
  19. end
  20. end
  21. end