我有一个具有Firebase云功能的Angular 6应用,该功能旨在通过SendGrid API发送电子邮件。我目前可以拨打电话并发送电子邮件;但是,有{{name}}
和{{message}}
之类的嵌入式属性应该可以替换。根据{{3}}和SendGrid's site,这应该相对容易。即使将某些控制台日志的值放在request.query.name
的云函数中并获得正确的结果后,msg
的值也将不匹配。
这是我到目前为止所拥有的。
云功能:
import * as functions from 'firebase-functions';
import * as sgMail from '@sendgrid/mail';
export const sendContactMail = functions.https.onRequest((request, response) => {
const SENDGRID_API_KEY = functions.config().sendgrid.key;
sgMail.setApiKey(SENDGRID_API_KEY);
sgMail.setSubstitutionWrappers('{{','}}');
const msg = {
to: 'some@email.com',
from: 'some.other@email.com',
templateId: 'thisisfrommyaccount',
substitutions: {
name: request.query.name,
email: request.query.email,
message: request.query.message
}
};
return sgMail.send(msg).then((res) => {
console.log('email sent');
}).catch(err => {
console.log(err.stack);
});
});