assunto não muda no email
chamar sgMail.send (ver abaixo)
const seeBellow = {
"from": "[email protected]",
"templateId": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb",
"dynamicTemplateData": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
},
"personalizations": [
{
"to": "[email protected]",
"subject": "Somebody has sent you a Gift Card"
}
],
"isMultiple": false,
"substitutionWrappers": [
"{{",
"}}"
]
}
que resulta na seguinte postagem
{
"method": "POST",
"url": "/v3/mail/send",
"body": {
"from": {
"email": "[email protected]"
},
"personalizations": [
{
"to": [
{
"email": "[email protected]"
}
],
"subject": "Somebody has sent you a Gift Card",
"dynamic_template_data": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
}
}
],
"template_id": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb"
}
}
Também tentei enviar 2 e-mails por meio de uma série de mensagens em vez de usar personalizações, mas isso também não funciona.
Finalmente, também tentei colocar o assunto ao lado do campo de origem, ainda não funcionou
"@sendgrid/mail": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-6.3.1.tgz",
"integrity": "sha512-5zIeAV9iU+0hQkrOQ/D4RB2MfpK+lNbOortIfQdCh95aMDF/TRc9WB8FGNhmQrx9YMuJTms5eiBklF0Fi/dbVg==",
"requires": {
"@sendgrid/client": "6.3.0",
"@sendgrid/helpers": "6.3.0"
}
},
A solução alternativa que estou usando é adicionar um assunto na interface da web do SendGrid como {{subject}} e, em seguida, passar uma variável de assunto para dynamic_template_data
. Parece que as variáveis de modelo funcionam em assuntos, então você pode basicamente passar o assunto inteiro programaticamente dessa maneira.
Olá @falconmick ,
@ wbw20 A solução alternativa funciona, tente fazer isso enquanto investigamos a causa raiz.
@ wbw20 ,
Obrigado por ajudar! Eu editei sua imagem porque ela não contribuiu para a solução. Não tenho certeza de qual era sua intenção.
Obrigado pela atenção,
Elmer
FWIW, vejo um comportamento semelhante com a biblioteca Ruby.
Definir o assunto no objeto de email não substitui nada definido no modelo nas ferramentas da web. Tem que fazer um guiador e adicionar a cada personalização.
Eu também estou encontrando esse problema. Estou lutando para apontar exatamente por que está falhando.
A solução alternativa parece viável, mas é lamentável, pois vai contra a configuração que temos para todos os outros e-mails do SendGrid.
Deve ser assim:
"dynamic_template_data": {
"assunto": "seu assunto",
},
vá para https://sendgrid.com/dynamic_templates
e adicione {{{assunto}}} em CONFIGURAÇÕES DO MODELO.
Funciona para mim: +1:
A solução de @atarabbi deve ser o que você precisa. Continue a comentar neste tópico se ainda tiver problemas. Obrigado!
A solução de @atarabbi deve ser o que você precisa. Continue a comentar neste tópico se ainda tiver problemas. Obrigado!
Mas isso ainda não faz com que as coisas não funcionem de acordo com a forma como a API da biblioteca está documentada para consumo? Definir o assunto como as coisas permitem ainda pareceria quebrado, não?
Sim, o método que os documentos sugerem para mudar de assunto não parece funcionar. Não sei se isso é apenas um problema para dynamic_template_data, mas também estou tendo isso.
Vou tentar usar um modelo dinâmico para a linha de assunto, mas a documentação é surpreendentemente inconsistente
Pelo que estou vendo nos documentos aqui , está documentado para atualizar o assunto do modelo com a variável do guidão (concedido, esta poderia ser uma explicação mais ampla). @baugarten Só para ter certeza, você está dizendo que não está funcionando para você? Você pode apontar onde estamos apontando na direção errada?
Estou vendo que não estamos documentando dynamic_template_data no pacote do cliente .
Além disso, você está usando a versão mais recente da biblioteca v6.3.1?
Definitivamente, quero consertar isso e peça desculpas pela confusão!
FWIW Também estou vendo esse problema na biblioteca Golang , não consigo substituir o assunto do modelo da chamada de API. Se eu não conseguir encontrar uma solução alternativa adequada, farei um problema lá também.
Ugh, os documentos dizem especificamente que o assunto base será substituído por um assunto de personalização, o que não é a mesma coisa que ser capaz de modelar o assunto.
EDIT: Especialmente quando suas próprias bibliotecas não funcionam. Eles adicionam assunto em uma personalização, onde não pode ser usado como modelo. Se você espera que este seja o comportamento documentado, as bibliotecas precisam adicioná-lo ao subobjeto dynamic_template_data.
Também corri para isso, o assunto não parece ter sido sobrescrito, mas é possível usar uma solução alternativa.
Deixar o assunto no 'dynamic_template_data' e se referir a ele no modelo com {{{subject}}} realmente parece funcionar. Além disso, o que percebi é que custom_args não existe mais. Ele é mesclado com as substituições em 'dynamic_template_data'. Infelizmente, os documentos não dizem isso. Se você deseja passar um parâmetro de idioma, por exemplo, faça isso também em seu 'dynamic_template_data'.
O campo "dynamic_template_data" funciona, mas parece não documentado: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html
Isso ainda é um problema. Por que isso foi fechado?
A solução alternativa não funciona de maneira confiável. Se eu enviar aproximadamente 30 emails em um loop usando exatamente o mesmo Assunto, recebo alguns com o assunto que enviei e outros com (sem assunto).
Existe atualmente uma maneira confiável de enviar assuntos personalizados por meio da API?
@ deepai-org Melhor usar os documentos mais recentes aqui: https://sendgrid.com/docs/API_Reference/api_v3.html
@vladkosarev Você está dizendo que está usando o mesmo modelo dinâmico com modelo de assunto com guiador (consulte https://github.com/sendgrid/sendgrid-nodejs/issues/713#issuecomment-443206995) e sua carga útil de solicitação contém o dados de modelo dinâmico para o assunto e não está usando o assunto de forma confiável? Se for esse o caso, é melhor entrar em contato com o suporte, pois isso não é algo que pode / deve ser tratado por uma biblioteca do lado do cliente.
@ childish-sambino Depois de um tempo, o assunto estava realmente correto em todos os e-mails. Parece que há algo assíncrono acontecendo por um tempo e alguns e-mails terão um modelo de e-mail antigo e alguns novos.
Esta https://sendgrid.com/docs/API_Reference/api_v3.html documentação correta? Tenho certeza de que enviar o assunto conforme descrito nesse documento não funciona. A única maneira de funcionar até agora foi a solução alternativa descrita neste tíquete.
@vladkosarev Esses são os documentos corretos. Se você estiver usando modelos dinâmicos, o assunto deve ser modelado e passado como dados de modelo dinâmico para modificá-lo por e-mail, conforme descrito nesta edição. Se você não estiver usando modelos, o assunto fornecido na carga útil de envio de email será usado.
Quanto ao motivo pelo qual alguma sincronização foi necessária para que o assunto fosse correto para todos os e-mails, melhor entrar em contato com o suporte.
@ childish-sambino Você pode me apontar onde na documentação ele explica como usar o assunto em um modelo dinâmico? Ainda não consigo encontrar isso em nenhum lugar nesse novo link. Obrigado!
se bem me lembro @vladkosarev , você deseja definir o valor do guiador no próprio modelo para o assunto - isso é feito usando a interface do usuário do modelo. Em seguida, apenas faça referência a esse valor em seu código.
@aroach obrigado, mas estou interessado em ver isso no documento, não em um comentário no github. A propósito, {{}} não funcionou para mim quando tentei, apenas colchetes triplos {{{}}} funcionaram (pode ser o mesmo problema assíncrono de antes).
@vladkosarev Parece ser mencionado aqui: https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/
Este modelo de guiador pode ser usado nas linhas de texto, html e assunto do seu modelo.
@aroach obrigado. Acabei de fazer mais testes e o assunto demora um pouco para realmente 'aplicar' a um modelo, então parece que não está funcionando se você estiver testando (editar modelo / enviar). Se você esperar 10 minutos, ele realmente será aplicado e funcionará conforme o esperado. Posso entrar em contato com o SG para documentar que as atualizações do modelo não são em tempo real (pelo menos para o assunto) e que você tem que esperar um pouco para fazer um teste. Obrigado.
@Whatthefoxsays deve ser capaz de
@aroach, uma coisa que provavelmente devo mencionar é que temos dois IPs para enviar e-mail. Não sei o funcionamento interno do SG, mas pode ser por isso que há um problema (leva tempo para se propagar para o segundo nó?).
Comentários muito úteis
Deve ser assim:
"dynamic_template_data": {
"assunto": "seu assunto",
},
vá para https://sendgrid.com/dynamic_templates
e adicione {{{assunto}}} em CONFIGURAÇÕES DO MODELO.
Funciona para mim: +1: