Using Gmail SMTP OAUTH
The Gmail IMAP and SMTP servers have been extended to support authorization via the industry-standard OAuth 2.0 protocol. Using OAUTH protocol, user can do authentication by Gmail Web OAuth instead of inputting user and password directly in application. This way is more secure, but a little bit complex.
https://developers.google.com/gmail/oauth_overview?hl=en
Create your project in Google Developers Console
To use Gmail OAUTH in your application, you must create a project in Google Developers Console at first.
...
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.
...
...
Select your project -> APIs & Services -> Dashboard -> Credentials;
...
Credentials -> Create Credentials -> OAuth client ID -> Web application or Other (Desktop Application). It depends on your application type.
...
Input a name for your application, input your current ASP/ASP.NET URL at Authorized redirect URIs, for example: http://localhost/gmailoauth/default.aspx. (Desktop Application doesn't require this step)
...
Click "Create", you will get your client id and client secret:
...
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.
...