Eu migrei de sendgrid 2.0.0
para @sendgrid/mail 6.1.2
, as substituições não estão mais funcionando
SendgridService.prototype.sendTestEmail = function () {
var text = 'Hi %DISPLAY_NAME%\n\n'
const msg = {
to: '[email protected]',
subject: 'Test Email',
from: {email: '[email protected]', name: 'Test'},
text: text,
substitutions: {
"%DISPLAY_NAME%": 'Test'
}
}
return sendgrid.send(msg)
}
Olá @sydneyhenrard ,
Aqui está um exemplo completo.
Parece que você precisa definir substitutionWrappers
. No seu caso, isso seria %
. Então, no objeto substitutions
, você deixaria os caracteres %
fora.
Obrigado pela atenção,
Elmer
Existe uma convenção sobre variável?
SendgridService.prototype.sendTestEmail = function () {
var text = 'Hi %DISPLAY_NAME% - %displayname%\n\n'
const msg = {
to: '[email protected]',
subject: 'Test Email',
from: {email: '[email protected]', name: 'Test'},
text: text,
substitutionWrappers: ['%', '%'],
substitutions: {
DISPLAY_NAME: 'Test',
displayname: 'Test'
}
}
return sendgrid.send(msg)
}
O email recebido:
Hi %DISPLAY_NAME% – Test
Olá @sydneyhenrard ,
Consegui reproduzir este problema. Eu adicionei isso ao nosso backlog para uma correção. Parece que dada a substituição n, a substituição 0 não está sendo definida corretamente.
Obrigado pela atenção,
Elmer
@thinkingserious isso é do seu lado ou um problema com o SDK do Node?
É um problema com o SDK. Não tenho certeza de qual é exatamente o problema. Pretendo examinar a carga útil para ajudar a solucionar o problema.
Se eu usar a variável camelCase, não tenho problemas com as substituições, mesmo para a substituição 0
Obrigado @sydneyhenrard ,
Isso deve ajudar a chegar à causa raiz mais rápido :)
Acho que posso saber qual é o problema, deixe-me investigar.
Mesclado como v6.1.3, obrigado @adamreisnz!
@sydneyhenrard ,
Por nos ajudar a resolver esse problema, gostaríamos de enviar alguns brindes como um símbolo de nossa gratidão.
Obrigado por apoiar SendGrid!
Obrigado pela atenção,
Elmer
teve o mesmo problema em 01/2018. mudou nossas variáveis de substituição de% companyname% para% company_name% porque variáveis de palavra única não estavam funcionando. consertado imediatamente.
Olá @greglbyv ,
Qual versão do SDK você está usando? Obrigado!
Obrigado pela atenção,
Elmer
As substituições devem funcionar ao usar o modelo de design construído? Só consigo fazer com que funcionem quando construo o modelo à mão; aqueles criados com a ferramenta de design nunca funcionam.
@airstofather ,
Para ajudá-lo, precisarei de mais detalhes. 1) A qual modelo você está se referindo? 2) Você poderia fornecer o código de amostra? Tanto o HTML do modelo quanto o código Node.js. Obrigado!
Além disso, pode ser melhor abrir um problema separado. Obrigado!
Obrigado pela atenção,
Elmer
@thinkingserious
Por favor, ignore meu comentário anterior. Depois de sua resposta, voltei a olhar para ele com novos olhos e era um espaço extra na variável interpolada que estava causando o problema que não entendi da primeira vez.
Tudo está funcionando conforme anunciado. Obrigado.
@thinkingserious eu tentei de tudo, camelcase, underscore. A variável ainda não iria preencher, quando eu faço o teste por meio da IU do sendgrid e passo a variável, ele funciona bem. Ele simplesmente não funcionaria por meio de funções de nuvem do Firebase. Aqui está o meu código
Estou usando "@ sendgrid / mail": "^ 6.3.1"
const msgbody = {
to: userData.email,
from: '[email protected]',
subject: 'Registration Complete',
templateId: 'd-dffc1e7c8a4a4ed5a4384eded1701f65',
substitutionWrappers: ['{{', '}}'],
substitutions: {
first_name: userData.firstName
}
}
Comentários muito úteis
@sydneyhenrard ,
Por nos ajudar a resolver esse problema, gostaríamos de enviar alguns brindes como um símbolo de nossa gratidão.
Obrigado por apoiar SendGrid!
Obrigado pela atenção,
Elmer