feat: add Google Email fetch and OAuth token refresh service (#9603)
This PR adds the following changes 1. Add `Imap::GoogleFetchEmailService` and `Google::RefreshOauthTokenService`. The `Google::RefreshOauthTokenService` uses `OmniAuth::Strategies::GoogleOauth2` which is already added as a packge 2. Update `Inboxes::FetchImapEmailsJob` to handle Google inboxes 3. Add SMTP settings for Google in `ConversationReplyMailerHelper` to allow sending emails ## Preview #### Incoming emails  #### Outgoing email  --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
This commit is contained in:
17
app/services/imap/google_fetch_email_service.rb
Normal file
17
app/services/imap/google_fetch_email_service.rb
Normal file
@@ -0,0 +1,17 @@
|
||||
class Imap::GoogleFetchEmailService < Imap::BaseFetchEmailService
|
||||
def fetch_emails
|
||||
return if channel.provider_config['access_token'].blank?
|
||||
|
||||
fetch_mail_for_channel
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def authentication_type
|
||||
'XOAUTH2'
|
||||
end
|
||||
|
||||
def imap_password
|
||||
Google::RefreshOauthTokenService.new(channel: channel).access_token
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user