* APOIO DIRETO A MIM AQUI *
PROVA: https://support.sendgrid.com/hc/en-us/requests/1325416?page=1
Não consigo enviar e-mail com a biblioteca. suporte me direcionou aqui. Estou tentando enviar de node.js, executando em localhost. Tentei primeiro o exemplo conforme listado no npm, mas recebo um erro 401 com um cabeçalho semelhante a x-no-cors reason
. então tentei usar o pacote @sendgrid/mail
vez disso, e com isso recebo um erro que diz o seguinte:
TypeError: Cannot read property 'errors' of undefined
at ResponseError.toString (E:\songsplits\api\node_modules\@sendgrid\helpers\classes\response-error.js:45:27)
at Function.CapturedTrace.parseStackAndMessage (E:\songsplits\api\node_modules\bluebird\js\main\captured_trace.js:176:25)
at CapturedTrace.attachExtraTrace (E:\songsplits\api\node_modules\bluebird\js\main\captured_trace.js:79:32)
at Promise._attachExtraTrace (E:\songsplits\api\node_modules\bluebird\js\main\debuggability.js:102:19)
at Promise._rejectCallback (E:\songsplits\api\node_modules\bluebird\js\main\promise.js:471:10)
at E:\songsplits\api\node_modules\bluebird\js\main\promise.js:486:17
at Request.http [as _callback] (E:\songsplits\api\node_modules\@sendgrid\client\src\client.js:124:18)
at Request.self.callback (E:\songsplits\api\node_modules\request\request.js:188:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (E:\songsplits\api\node_modules\request\request.js:1171:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (E:\songsplits\api\node_modules\request\request.js:1091:12)
at IncomingMessage.g (events.js:291:16)
at emitNone (events.js:91:20)
aqui está um módulo mínimo para reproduzir
email.js
const sgMail = require('@sendgrid/mail')
sgMail.setApiKey(process.env.SENDGRID_KEY);
module.exports.send = function send(html,subject,to,from){
return new Promise((resolve,reject)=>{
sgMail.send({
to,
from,
subject,
html
}).then(resolve).catch(reject);
});
};
index.js
const send = require('./mail');
send(
'<!DOCTYPE html><html><head><title>Hi</title></head><body>Hi</body></html>',
'Hi',
'[email protected]',
'[email protected]',
).then(()=>console.log('sent an email successfully!')).catch(err=>console.log(err));
acabei de tentar com outra chave também, e não bueno. às vezes, o erro não ocorre, e então a resposta é
Unauthorized (401)
Permission denied, wrong credentials
Olá @ r3wt ,
Esse é um problema com o qual nossa equipe de suporte pode ajudar. Eles podem ajudar a vasculhar sua conta para descobrir o problema com sua (s) chave (s).
Obrigado!
Obrigado pela atenção,
Elmer
@thinkingserious Sua equipe de suporte é quem me direcionou aqui.
@ r3wt
Sei que isso pode acontecer se você publicar sua chave de API no github, porque nossa equipe de conformidade desativará sua chave.
A outra coisa que pode acontecer é se você tiver ativado o gerenciamento de IP, onde sua conta só pode ser acessada por IPs específicos. Se o seu código estiver sendo executado em um IP que não está nessa lista, ele também causará erros.
Você pode me fazer um favor e criar uma nova chave de API com privilégios de email / envio e tentar o código novamente?
Enquanto você faz isso, pode nos dizer o número do seu tíquete de suporte?
Obrigado!!
Eu vejo o tíquete agora ... então vou olhar lá também. Obrigado!
@mbernier a chave está em um arquivo de configuração em um
agora, algumas informações sobre minha conexão:
Portanto, se for privado, isso não será um problema - embora nossas equipes de InfoSec sempre sugiram não colocar as chaves, mesmo em repositórios privados :)
Seu aplicativo deve ser capaz de enviar os e-mails.
Você pode ir aqui: https://sendgrid.com/docs/API_Reference/api_v3.html e tentar enviar por meio da guia "Experimente" na página de documentos? Se você receber um erro de volta, poste a resposta e o erro aqui.
@mbernier
@mbernier, infelizmente, ainda ocorrem erros em node.js
Parece que sua conta não está ativada. Você pode fazer o login em app.sendgrid.com e procurar as notificações no topo da página. Ele o orientará a fornecer um pouco mais de informações sobre você, a fim de provar que é um bom remetente.
@mbernier a conta de meus clientes está ativa há pelo menos 2 anos. Verifiquei os logs e o cliente está enviando ativamente outras campanhas de e-mail e outras coisas? Estou confuso.
@mbernier depois de seguir as instruções de configuração do menu de conta interativa, funcionou. tão bizarro.
Desculpe por isso, não tenho certeza do que poderia ter acontecido. Fiz anotações no tíquete de suporte, então espero que com o acesso deles eles possam nos dar mais detalhes.
Estou feliz que esteja funcionando agora!
@ r3wt Vou encerrar isto.
@mbernier, o problema está acontecendo novamente.
Olá @ r3wt ,
Você poderia, por favor, entrar em contato com nossa equipe de suporte por meio do tíquete de suporte original que você abriu com eles e criar um link para este tópico? Estou pensando que algo pode ter acontecido com sua conta e eles têm as ferramentas para investigar sua conta.
Obrigado!
Obrigado pela atenção,
Elmer
Apenas para avisar, eu tive problemas muito semelhantes, tanto quanto posso dizer (ainda novos). A solução foi configurar a variável chave de API na plataforma de aplicativos heroku https://devcenter.heroku.com/articles/sendgrid#setup -api-key-environment-variable
Sem problemas agora para mim.