Я пытался использовать mailgun для отправки информации на указанную учетную запись электронной почты.Я использую платную версию как Mailgun, так и Firebase.Я пробовал следующее:
Очевидно, что это только одна из моих функций.В этой функции я устанавливаю баланс пользователя на 0 и отправляю электронное письмо на учетную запись электронной почты со значением.
Но я даже не могу отправить электронное письмо без информации ...
var mailgun = require('mailgun-js')({
apiKey: 'key-MY_KEY',
domain: 'https://api.mailgun.net/v3/MY_DOMAIN/messages'
})
exports.initiateBankPayout = functions.https.onRequest((request, response) => {
// Ensure there is authorization data in the request header
if (!request.headers.authorization || !request.headers.authorization.startsWith('Bearer ')) {
console.log("Unauthorized request")
// Return forbidden status code
return response.sendStatus(403)
}
let idToken
if (request.headers.authorization && request.headers.authorization.startsWith('Bearer ')) {
idToken = request.headers.authorization.split('Bearer ')[1]
}
// Verify the requestor's credentials
const authPromise = admin.auth().verifyIdToken(idToken)
return authPromise.then((user) => {
const userId = user.user_id
const db = admin.database()
const userBalanceRef = db.ref(`users/${userId}/availableBalance`)
return Promise.all([userBalanceRef.once("value"), userBalanceRef])
}).then(([currentBalance, userBalanceRef]) => {
// Transaction promise to set user's balance to $0
const balanceAdjustment = userBalanceRef.transaction((currentBalance) => {
return "0"
})
// Fulfillment callback will be passed a boolean success parameter, and the balance before the adjustment
return Promise.all([balanceAdjustment, currentBalance.val()])
}).then(([committed, previousBalance]) => {
if (committed && committed.committed) {
/**
* INSERT CODE FOR SENDING EMAIL HERE
* use previousBalance arguemnt to get the balance prior to adjustment
**/
var dt = {
from: 'Excited User <mailgun@MY_DOMAIN.com>',
subject: 'Welcome!',
html: `<p>Welcome! ${user.name}</p>`,
'h:Reply-To': 'mailgun@MY_DOMAIN.com',
to: 'email@gmail.edu',
//text: 'Testing some Mailgun awesomeness!'
};
mailgun.messages().send(dt, function (error, body) {
console.log(body);
console.log(error);
});
//end of new stuff
return response.send({
data: {
success: true
}
})
}
// If committed === false, then an undefined error occurred
return response.status(500).send("Internal error: user balance adjustment failed")
}).catch((err) => {
console.error(err)
return response.status(500).send(`Internal error: ${err}`)
})
})
Я думаю, что, возможно, при инициализации apiKey: 'key-My_Key' мне нужен apiKey: 'key-' или другой формат?
Я пытался искать в Интернете, но большинство людей, которые спрашиваютВопросы такого рода - это те, кто не оплатил услугу.Любая подсказка о том, как сделать это для кого-то, кто на самом деле платит?Я не знаю, в чем здесь может быть ошибка.