Apenas tentando enviar um e-mail com funções na nuvem
const functions = require('firebase-functions')
const express = require('express')
const cors = require('cors')
const mailService = require('@sendgrid/mail')
const bodyParser = require('body-parser')
//Constants
const SENDGRID_API_KEY = 'Myapikey'
//Set up
const app = express()
app.use(bodyParser.json())
app.use(cors({ origin: true }))
app.post('/send', async (req, res) => {
mailService.setApiKey(SENDGRID_API_KEY)
const { name, email, message } = req.body
const emailContent = {
to: '[email protected]',
from: '[email protected]'',
subject: `subject`,
text: `some message`,
}
try{
const response = await mailService.send(emailContent)
res.json({message: 'message sent'})
} catch(error){
const { message, code, response } = error
res.json({message, response})
}
})
exports.api = functions.https.onRequest(app)
Parece um problema de DNS. Eu li em outro lugar (stackoverflow) que você precisa estar em um plano pago para fazer solicitações externas em funções do firebase. Funciona localmente no seu laptop?
@aroach
Funciona localmente no seu laptop?
Não, não está trabalhando localmente.
É um problema de Firebase ou Sendgrid?
Obrigado
PS: Acho que para localmente você quis dizer chamar a função localmente, em vez de já estar implementada? Se sim, nesse caso minha função é ao vivo
@aroach descobriu que era verdade: https://firebase.google.com/support
E depois de atualizar meu plano, eu poderia enviar a mensagem.
Obrigado
Este é um problema de base incendiária. Se você estiver usando uma conta gratuita (plano Spark), só poderá usar os serviços do Google se estiver usando serviços externos e terá que pagar por isso.
https://firebase.google.com/pricing/
Atualize seu plano (Plano Flame ou Plano Blaze), você pode enviar e-mails através do SendGrid.
@ kadnan0900 eu atualizei para o plano blaze, mas ainda recebo getaddrinfo ENOTFOUND api.github.com api.github. com: erro
Também obtendo o erro. Curiosamente, funcionou uma vez, mas não funcionou novamente. No plano Blaze no firebase, verifiquei que estou usando as chaves de API corretas e os creds das chaves de API estão corretos. Testando localmente com o emulador / IU do Firebase, obtendo este erro.
Usando:
"@sendgrid/mail": "^7.1.1",
"firebase-admin": "^8.12.1",
"firebase-functions": "^3.6.2"
Parece um problema de DNS. Eu li em outro lugar (stackoverflow) que você precisa estar em um plano pago para fazer solicitações externas em funções do firebase. Funciona localmente no seu laptop?
Está trabalhando localmente. Mas não na implantação
Também obtendo o erro. Curiosamente, funcionou uma vez, mas não funcionou novamente. No plano Blaze no firebase, verifiquei que estou usando as chaves de API corretas e os creds das chaves de API estão corretos. Testando localmente com o emulador / IU do Firebase, obtendo este erro.
Usando:
"@sendgrid/mail": "^7.1.1", "firebase-admin": "^8.12.1", "firebase-functions": "^3.6.2"
Alguma sorte? Estamos enfrentando esse problema no plano Blaze.
Comentários muito úteis
Parece um problema de DNS. Eu li em outro lugar (stackoverflow) que você precisa estar em um plano pago para fazer solicitações externas em funções do firebase. Funciona localmente no seu laptop?