مجرد محاولة إرسال بريد إلكتروني بوظائف السحابة
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)
يبدو أنه مشكلة DNS. قرأت في مكان آخر (stackoverflow) أنك بحاجة إلى أن تكون على خطة مدفوعة لتقديم طلبات خارجية على وظائف Firebase. هل يعمل محليًا على الكمبيوتر المحمول الخاص بك؟
aroach
هل يعمل محليًا على الكمبيوتر المحمول الخاص بك؟
لا ، لا يعمل محليا.
هل هي مشكلة Firebase أم Sendgrid؟
شكرا
ملاحظة: أعتقد أنك تعني محليًا استدعاء الوظيفة محليًا بدلاً من نشرها بالفعل؟ إذا كانت الإجابة بنعم ، في هذه الحالة تكون وظيفتي حية
aroach تبين أنه كان صحيحًا: https://firebase.google.com/support
وبعد ترقية خطتي يمكنني إرسال الرسالة.
شكرا
هذه قضية تتعلق بقاعدة النار. إذا كنت تستخدم حسابًا مجانيًا (Spark Plan) ، فلا يمكنك استخدام خدمات Google إلا إذا كنت تستخدم خدمات خارجية ، يتعين عليك الدفع مقابل ذلك.
https://firebase.google.com/pricing/
قم بترقية خطتك (Flame Plan أو Blaze Plan) ، يمكنك إرسال رسائل البريد الإلكتروني من خلال SendGrid.
@ kadnan0900 قمت بالترقية إلى خطة blaze ولكن ما زلت أحصل على getaddrinfo ENOTFOUND api.github.com api.github. كوم: خطأ
أيضا الحصول على الخطأ. ومن المثير للاهتمام ، أنه نجح مرة واحدة ، ثم لم يعمل مرة أخرى. في خطة Blaze في firebase ، تم التحقق من أنني أستخدم مفاتيح API الصحيحة ، وأرصدة مفتاح API صحيحة. الاختبار محليًا باستخدام محاكي / واجهة مستخدم Firebase ، والحصول على هذا الخطأ.
استخدام:
"@sendgrid/mail": "^7.1.1",
"firebase-admin": "^8.12.1",
"firebase-functions": "^3.6.2"
يبدو أنه مشكلة DNS. قرأت في مكان آخر (stackoverflow) أنك بحاجة إلى أن تكون على خطة مدفوعة لتقديم طلبات خارجية على وظائف Firebase. هل يعمل محليًا على الكمبيوتر المحمول الخاص بك؟
عملها محليا. لكن ليس عند النشر
أيضا الحصول على الخطأ. ومن المثير للاهتمام ، أنه نجح مرة واحدة ، ثم لم يعمل مرة أخرى. في خطة Blaze في firebase ، تم التحقق من أنني أستخدم مفاتيح API الصحيحة ، وأرصدة مفتاح API صحيحة. الاختبار محليًا باستخدام محاكي / واجهة مستخدم Firebase ، والحصول على هذا الخطأ.
استخدام:
"@sendgrid/mail": "^7.1.1", "firebase-admin": "^8.12.1", "firebase-functions": "^3.6.2"
أي حظ؟ نحن نواجه هذه المشكلة بأنفسنا في خطة Blaze.
التعليق الأكثر فائدة
يبدو أنه مشكلة DNS. قرأت في مكان آخر (stackoverflow) أنك بحاجة إلى أن تكون على خطة مدفوعة لتقديم طلبات خارجية على وظائف Firebase. هل يعمل محليًا على الكمبيوتر المحمول الخاص بك؟