É possível enviar e-mail do Google por URL?
Não consegui encontrar nenhuma forma documentada de enviar e-mail através da API GMAIL, usando url (solicitação GET), algo assim:
https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
alguma ideia ou truque para conseguir isso? (então, eu poderia usar uma senha simples ou de app).
Respostas
Eu acredito em seu objetivo da seguinte maneira.
- Você deseja enviar um e-mail acessando a URL, como se estivesse
https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-passusando a API do Gmail.
Achei que seu objetivo poderia ser alcançado usando Web Apps criados pelo Google Apps Script. Nesse caso, o script pode ser simples. Portanto, nesta resposta, gostaria de propor atingir seu objetivo usando Web Apps criados pelo Google Apps Script.
Uso:
Faça o seguinte fluxo.
1. Crie um novo projeto do Google Apps Script.
O script de amostra do Web Apps é um Script do Google Apps. Portanto, crie um projeto do Google Apps Script.
Se você deseja criá-lo diretamente, acesse a https://script.new/. Nesse caso, se você não estiver conectado ao Google, a tela de login será aberta. Portanto, faça login no Google. Com isso, o editor de script do Google Apps Script é aberto.
2. Prepare o script.
Copie e cole o seguinte script (Google Apps Script) no editor de scripts. Este script é para os aplicativos da Web.
function doGet(e) {
const allowedUsers = [
{email: "[email protected]", password: "xyz-app-pass"},
,
,
,
]; // If you want to allow other users to use this script, please add other emails and passwords to the `allowedUsers` array;
const subject = "sample subject";
const {action, to, message, auth_user, pass} = e.parameter;
if (action == "send" && allowedUsers.some(({email, password}) => email == auth_user && password == pass)) {
MailApp.sendEmail({to: to, subject: subject, body: message});
return HtmlService.createHtmlOutput("Email was sent.");
}
return HtmlService.createHtmlOutput("Email was not sent.");
}
3. Implantar aplicativos da Web.
- No editor de script, abra uma caixa de diálogo por "Publicar" -> "Implementar como aplicativo da web".
- Selecione "Usuário acessando o aplicativo da web" para "Executar o aplicativo como:" .
- Com isso, o script é executado como o usuário que acessou os Web Apps.
- Selecione "Qualquer pessoa" para "Quem tem acesso ao aplicativo:" .
- Nesse caso, acesse os aplicativos da Web usando o navegador. Com isso, ao fazer login no Google, os Web Apps podem ser utilizados.
- E, nessas configurações, quando o "Usuário A" acessa os Web Apps fazendo login no Google, o "Usuário A" também pode enviar o e-mail usando o próprio Gmail. Nesse caso, adicione
{email: "###", password: "###"}"Usuário A" aoallowedUsersscript. Por isso, apenas usuários cadastrados podem enviar o e-mail. - Se você não quiser compartilhar com outros usuários, defina
Execute the app as: MeeWho has access to the app: Only myself.
- Clique no botão "Implementar" como uma nova "Versão do projeto".
- Abra automaticamente uma caixa de diálogo de "Autorização necessária".
- Clique em "Permissões de revisão".
- Selecione sua própria conta.
- Clique em "Avançado" em "Este aplicativo não foi verificado".
- Clique em "Ir para ### nome do projeto ### (inseguro)"
- Clique no botão "Permitir".
- Clique OK".
- Copie o URL dos aplicativos da Web. É como
https://script.google.com/macros/s/###/exec.- Quando você modificou o Google Apps Script, reimplante como nova versão. Com isso, o script modificado é refletido para Web Apps. Por favor, tome cuidado com isso.
4. Teste de aplicativos da Web.
Acesse a URL de seus aplicativos da Web usando seu navegador, incluindo os parâmetros de consulta a seguir. Quando você já estiver logado no Google, o script do Web Apps é executado.
https://script.google.com/macros/s/###/exec?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
Resultado:
Quando script acima é executado e auth_usere passestão incluídos no allowedUsers, Email was sent.é devolvido.
Nota:
- Quando você modificou o script de Web Apps, reimplante os Web Apps como uma nova versão. Com isso, o script mais recente é refletido nos Web Apps. Por favor, tome cuidado com isso.
- Se você deseja acessar os aplicativos da Web usando um script e curl, é necessário acessá-los usando o token de acesso. Neste caso, inclua o escopo de
https://www.googleapis.com/auth/drive.file(em alguns casos, pode funcionar/driveou/drive.readonly) - O Script do Google Apps é um script de exemplo simples para explicar o método para atingir seu objetivo. Portanto, modifique-o para sua situação real.
Referências:
- Aplicativos da web
- Aproveitando o Web Apps com o Google Apps Script