Usando Gmail SMTP OAUTH
Os servidores IMAP e SMTP do Gmail foram estendidos para oferecer suporte à autorização por meio do protocolo OAuth 2.0. Usando o protocolo OAUTH, o usuário pode fazer autenticação pelo Gmail Web OAuth em vez de inserir usuário e senha diretamente no aplicativo. Dessa forma é mais seguro, mas um pouco complexo.
Acessar o painel de API e Serviços do Google Cloud
https://console.cloud.google.com/apis
Crie seu projeto em Google Developers Console
Para usar o Gmail OAUTH em seu aplicativo, você deve criar um projeto em Google Developers Console primeiro.
...
Algumas aplicações que operam em nível de servidor precisam de uma Conta de Serviço para que o envio de e-mails através do Google possa ser realizado. Isso é necessário porque, diferentemente do método convencional do OAuth, onde o usuário, a partir de sua estação de trabalho, conecta-se à sua conta Google, uma aplicação em nível de servidor utilizará uma conta 'padrão' para o envio de e-mails. Um exemplo são as contas responsáveis por envio de Notas Fiscais eletrônicas.
Para que uma conta de serviço seja criada, gerando uma um arquivo com a chave de autenticação (p12) para ser usada nestas aplicações em nível servidor, os passos abaixo são necessários.
...
Crie seu projeto no Google Console
Para a criação da conta de serviço OAuth com o Gmail, é necessário criar um projeto.
Crie o projeto acessando https://console.
...
...
Selecione seu projeto -> APIs & Services -> Dashboard -> Credentials;
...
Credentials -> Create Credentials -> OAuth client ID -> Aplicação Web ou Desktop. Isso depende da sua aplicação.
...
No caso do ti9-email-api, ele é uma aplicação Web, então:
...
No campo Tipo de aplicativo, selecione Aplicativo da Web
...
No campo URIs de redirecionamento autorizados, adicione um endereço para receber as solicitações do Google/OAuth. Este endereço deve ser um host válido e de acesso externo.
...
Insira um nome para seu aplicativo, insira seu URL ASP/ASP.NET atual em URIs de redirecionamento autorizados, por exemplo: http://localhost/gmailoauth/default.aspx. (O aplicativo de desktop não requer esta etapa)
...
Clique em "Criar", você obterá seu ID e secret do cliente:
...
...
Enable Gmail API in "Library" -> Search "Gmail", then click "Gmail API" and enable it.
...
You should set detail information for your project at "OAuth consent screen" -> "Edit App".
...
Finally add "https://mail.google.com/" and "../auth/gmail.send" scopes at "OAuth consent screen" -> "Edit App" -> "Scopes for Google API".
If you use Gmail RESTFul API to send email, please only use "../auth/gmail.send" scope to avoid your app throttled.
Scope Remarks
Gmail supports SMTP + OAUTH, but the API (https://mail.google.com/) scope is restricted API which requests to have full access to the Gmail account. Restricted API is throttled before your project is authenticated in by Google.
Using less restricted API (https://www.googleapis.com/auth/gmail.send) scope to send email via Gmail server is recommended.
Selecione seu projeto na parte superior da tela, ao lado do ícone do Google Cloud.
No menu à esquerda, selecione Contas de serviço;
- Clique em Criar conta de serviço.
Preencha as informações solicitadas para a criação da conta de serviço.
Os passos 2 e 3 do formulário são opcionais, sendo de escolha do cliente preenchê-los ou não.
Ao clicar em Concluir, sua conta de serviço será criada.
Após criada, a conta de serviço ficará visível no painel Contas de serviço.
Criação de uma Chave P12 para uso nas aplicações
- Para algumas aplicações, pode ser necessário criar uma chave P12. Para gerá-la:
- Selecione a conta de serviço criada e clique no ícone de Ações (3 pontos).
- Escolha a opção Gerenciar Chaves.
Na tela que se abre, selecione a opção Adicionar Chave e selecione P12: - A chave P12 será gerada e poderá ser armazenada localmente para uso nas aplicações que requerem esse tipo de autenticação.
...