auth_xoauth2.rb 433 B

123456789101112131415161718192021
  1. # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
  2. require 'net/smtp'
  3. class Net::SMTP
  4. class AuthXoauth2 < Net::SMTP::Authenticator
  5. auth_type :xoauth2
  6. def auth(user, secret)
  7. token = xoauth2_string(user, secret)
  8. finish("AUTH XOAUTH2 #{base64_encode(token)}")
  9. end
  10. private
  11. def xoauth2_string(user, secret)
  12. "user=#{user}\1auth=Bearer #{secret}\1\1"
  13. end
  14. end
  15. end