# Adicionar suporte de autenticação mais avançado para POP3

**URL:** <https://meta.discourse.org/t/add-richer-authentication-support-for-pop3/219340>\
**Category:** Feature\
**Tags:** email\
**Created:** [24 Fevereiro , 2022 08:06 UTC](https://meta.discourse.org/t/add-richer-authentication-support-for-pop3/219340 "2022-02-24T08:06:03Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![trobiyo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/trobiyo/32/311872_2.png) [@trobiyo](https://meta.discourse.org/u/trobiyo)\
**Post date:** [24 Fevereiro , 2022 08:06 UTC](https://meta.discourse.org/t/add-richer-authentication-support-for-pop3/219340/1 "2022-02-24T08:06:03Z")

</div>

Isso é ótimo mesmo, TLS também é um requisito para o Exchange Online. Mas ainda assim, a autenticação é feita por basic-auth (se eu entendi bem o código a seguir, não há como escolher entre qualquer outro mecanismo de autenticação como OAuth2) [discourse/poll\_mailbox.rb at tests-passed · discourse/discourse (github.com)](https://github.com/discourse/discourse/blob/tests-passed/app/jobs/scheduled/poll_mailbox.rb#L31-L39)

Rastreando um pouco mais, parece que a biblioteca [Class: Net::POP3 (Ruby 2.7.0) (ruby-doc.org)](https://ruby-doc.org/stdlib-2.7.0/libdoc/net/pop/rdoc/Net/POP3.html) em Ruby não suporta autenticação OAuth2, apenas a básica.

Para referência:
- [net-pop/lib/net/pop.rb at master · ruby/net-pop · GitHub](https://github.com/ruby/net-pop/blob/master/lib/net/pop.rb#L567-L571)
- [net-pop/lib/net/pop.rb at master · ruby/net-pop · GitHub](https://github.com/ruby/net-pop/blob/master/lib/net/pop.rb#L907-L922)

 

Ela apenas espera um usuário e uma senha, em vez de um usuário e um **token** , além de precisar usar o formato `AUTH XOAUTH2` para codificar e transmitir o token.

Desculpe se não fui claro na minha pergunta, mas estou perguntando mais sobre ter uma abordagem semelhante aos exemplos a seguir:

- [Ruby Office365 OAuth2 Resource Owner Password Credentials Grant para SMTP, IMAP, POP (example-code.com)](https://www.example-code.com/ruby/office365_resource_owner_password_credentials_grant.asp)
- ou mais “graficamente” explicado neste exemplo em perl [Net::POP3::XOAuth2 - It enables to use XOAUTH2 authentication with Net::POP3 - metacpan.org](https://metacpan.org/pod/Net::POP3::XOAuth2)

Essas abordagens permitirão que o Discourse se conecte ao POP3 (e, portanto, ao IMAP) com autenticação OAuth2, cumprindo assim os requisitos para a MS e provavelmente para o Gmail no futuro próximo, se não agora ( [OAuth 2.0 Mechanism | Gmail IMAP | Google Developers](https://developers.google.com/gmail/imap/xoauth2-protocol)).

---

_[View the full topic](https://meta.discourse.org/t/add-richer-authentication-support-for-pop3/219340)._
