Sendgrid-nodejs: Subjek tidak berubah di Template mail.send ()

Dibuat pada 1 Agu 2018  ·  26Komentar  ·  Sumber: sendgrid/sendgrid-nodejs

Ringkasan Masalah

subjek tidak berubah di email

Langkah-langkah untuk Mereproduksi

panggil sgMail.send (lihatBellow)

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": [
    "{{",
    "}}"
  ]
}

yang menghasilkan postingan berikut

{
  "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"
  }
}

Saya juga mencoba mengirim 2 email melalui berbagai pesan alih-alih menggunakan personalisasi namun ini juga tidak berfungsi.

Akhirnya saya juga berusaha menempatkan subjek di samping dari lapangan, masih tidak berhasil

Detail teknis:

  • versi sendgrid di lockfile:
    "@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"
      }
    },
  • Versi Node.js: 8.11.1
unknown or a hacktoberfest help wanted bug

Komentar yang paling membantu

Ini harus seperti:
"dynamic_template_data": {
"subjek": "subjek Anda",
},

buka https://sendgrid.com/dynamic_templates
dan tambahkan {{{subject}}} pada TEMPLATE SETTINGS.

Ini berhasil untuk saya: +1:

Semua 26 komentar

Solusi yang saya gunakan adalah menambahkan subjek di antarmuka web SendGrid seperti {{subject}} dan kemudian meneruskan variabel subjek ke dynamic_template_data . Tampaknya variabel template berfungsi dalam subjek sehingga Anda pada dasarnya dapat meneruskan seluruh subjek secara terprogram dengan cara itu.

Halo @falconick ,

Solusi @ wbw20 berfungsi, silakan coba saat kami menyelidiki akar penyebabnya.

@bayu_joo ,

Terima kasih telah membantu! Saya mengedit gambar Anda karena tidak menambah solusi. Tidak yakin apa niat Anda.

Salam hangat,

Elmer

FWIW, saya melihat perilaku yang mirip dengan Ruby lib.

Menetapkan subjek pada objek email tidak berhasil menimpa apa pun yang ditentukan pada template di alat web. Harus membuatnya menjadi stang dan menambah personalisasi masing-masing.

Saya juga mengalami masalah ini. Saya berjuang untuk menunjukkan dengan tepat mengapa itu gagal.

Solusi ini tampaknya dapat dijalankan, tetapi sangat disayangkan karena bertentangan dengan pengaturan yang kami miliki untuk semua email SendGrid lainnya.

Ini harus seperti:
"dynamic_template_data": {
"subjek": "subjek Anda",
},

buka https://sendgrid.com/dynamic_templates
dan tambahkan {{{subject}}} pada TEMPLATE SETTINGS.

Ini berhasil untuk saya: +1:

Solusi @atarabbi adalah yang Anda butuhkan. Silakan lanjutkan mengomentari utas ini jika Anda masih mengalami masalah. Terima kasih!

Solusi @atarabbi adalah yang Anda butuhkan. Silakan lanjutkan mengomentari utas ini jika Anda masih mengalami masalah. Terima kasih!

Tapi bukankah itu masih meninggalkan hal-hal yang pada akhirnya tidak berfungsi sesuai dengan bagaimana API perpustakaan didokumentasikan untuk kita konsumsi? Menetapkan subjek sebagai sesuatu yang memungkinkan akan tetap tampak rusak bukan?

Ya, metode yang disarankan oleh dokumen untuk mengubah topik pembicaraan sepertinya tidak berhasil. Saya tidak tahu apakah ini hanya masalah untuk dynamic_template_data, tetapi saya juga mengalami ini.

Saya akan mencoba menggunakan template dinamis untuk baris subjek, tetapi dokumentasinya ternyata tidak konsisten

Dari apa yang saya lihat di dokumen di sini , itu didokumentasikan untuk memperbarui subjek template dengan variabel setang (diberikan, ini bisa menjadi penjelasan yang lebih luas). @baugarten Hanya untuk memastikan, apakah Anda mengatakan bahwa itu tidak berhasil untuk Anda? Bisakah Anda menunjukkan di mana kami mengarahkan Anda ke arah yang salah?

Saya melihat bahwa kami tidak mendokumentasikan dynamic_template_data dalam paket klien .

Selain itu, apakah Anda menggunakan pustaka terbaru versi v6.3.1?

Pasti ingin memperbaiki ini, dan mohon maaf atas kebingungan ini!

FWIW Saya juga melihat masalah ini di pustaka Golang , saya tidak dapat mengganti subjek template dari panggilan API. Jika saya tidak dapat menemukan solusi yang cocok, saya akan membuat masalah di sana juga.

Ugh, dokumen secara khusus mengatakan bahwa subjek dasar akan ditimpa oleh subjek personalisasi, yang sama sekali tidak sama dengan dapat membuat template subjek.

EDIT: Terutama ketika perpustakaan Anda sendiri tidak berfungsi. Mereka menambahkan subjek dalam personalisasi, yang tidak dapat digunakan untuk template. Jika Anda mengharapkan ini menjadi perilaku yang didokumentasikan, maka perpustakaan perlu menambahkannya ke sub-objek dynamic_template_data.

Juga mengalami ini, subjek tampaknya tidak ditimpa, tetapi bekerja di sekitar dapat digunakan.

Membiarkan subjek di 'dynamic_template_data' dan merujuknya ke dalam template dengan {{{subject}}} sepertinya berhasil. Juga yang saya perhatikan adalah bahwa custom_args sudah tidak ada lagi. Ini digabungkan bersama dengan substitusi ke 'dynamic_template_data'. Sayangnya dokumen tidak memberitahukan hal ini. Jika Anda ingin meneruskan parameter bahasa misalnya, lakukan juga di 'dynamic_template_data' Anda.

Bidang "dynamic_template_data" berfungsi tetapi tampaknya tidak terdokumentasi: https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html

Ini masih menjadi masalah. Mengapa ini ditutup?

Solusi tersebut tidak bekerja dengan andal. Jika saya mengirim ~ 30 email dalam satu lingkaran menggunakan Subjek yang sama persis, saya mendapatkan beberapa dengan subjek yang saya kirim dan beberapa dengan (tanpa subjek).

Apakah saat ini ada cara yang andal untuk mengirimkan subjek kustom melalui API?

@ deepai-org Paling baik menggunakan dokumen terbaru di sini: https://sendgrid.com/docs/API_Reference/api_v3.html

@vladkosarev Apakah Anda mengatakan bahwa Anda menggunakan template dinamis yang sama dengan subjek yang diberi template dengan setang (lihat https://github.com/sendgrid/sendgrid-nodejs/issues/713#issuecomment-443206995) dan muatan permintaan Anda berisi data template dinamis untuk subjek dan tidak dapat diandalkan menggunakan subjek? Jika ini masalahnya, sebaiknya hubungi dukungan karena ini bukan sesuatu yang dapat / harus ditangani oleh perpustakaan sisi klien.

@ childish-sambino Setelah beberapa saat topik tersebut sebenarnya benar di semua email. Sepertinya ada sesuatu yang tidak sinkron untuk sementara waktu dan beberapa email akan mendapatkan template email lama dan beberapa yang baru.

Apakah https://sendgrid.com/docs/API_Reference/api_v3.html dokumentasi ini benar? Saya cukup yakin mengirim subjek seperti yang dijelaskan dalam dokumen itu tidak berfungsi. Satu-satunya cara sejauh ini yang berhasil adalah solusi yang dijelaskan dalam tiket ini.

@vladkosarev Itu adalah dokumen yang benar. Jika Anda menggunakan template dinamis, subjek harus memiliki template dan diteruskan sebagai data template dinamis untuk mengubahnya per email, seperti yang diuraikan dalam masalah ini. Jika Anda tidak menggunakan template, subjek yang disediakan di payload mail-send akan digunakan.

Mengenai mengapa beberapa sinkronisasi diperlukan agar subjek benar untuk semua email, sebaiknya hubungi dukungan.

@ childish-sambino Bisakah Anda menunjukkan pada saya di mana dalam dokumen itu menjelaskan bagaimana menggunakan subjek dalam template dinamis? Saya masih tidak dapat menemukannya di mana pun di tautan baru itu. Terima kasih!

jika saya ingat dengan benar @vladkosarev , Anda ingin menyetel nilai setang di templat itu sendiri untuk subjek - ini dilakukan menggunakan GUI templat. Kemudian cukup rujuk nilai itu dalam kode Anda.

image

@aroach terima kasih tetapi saya tertarik untuk melihatnya di dokumen, bukan di komentar di github. Ngomong-ngomong {{}} tidak berhasil untuk saya saat saya mencoba, hanya tanda kurung tiga {{{}} yang berfungsi (bisa jadi masalah asinkron yang sama seperti sebelumnya).

@vladkosarev Tampaknya disebutkan di sini: https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/

Template Handlebars ini dapat digunakan di baris teks, html, dan subjek template Anda.

@aroach terima kasih. Saya baru saja melakukan lebih banyak tes dan subjek membutuhkan beberapa saat untuk benar-benar 'berlaku' ke template sehingga sepertinya itu tidak berfungsi jika Anda menguji (edit template / kirim). Jika Anda menunggu 10 menit maka itu benar-benar diterapkan dan berfungsi sebagaimana mestinya. Saya mungkin menghubungi SG untuk mendokumentasikan bahwa pembaruan template tidak real time (setidaknya untuk subjek) dan Anda harus menunggu sedikit untuk melakukan tes. Terima kasih.

@Whatthefoxsays harus mampu mengejar ini dan / atau membuat pengeditan yang sesuai. 👋

@aroach satu hal yang mungkin harus saya sebutkan adalah bahwa kami memiliki dua IP untuk mengirim email. Saya tidak tahu inner working dari SG tapi mungkin itu sebabnya ada masalah (butuh waktu untuk menyebar ke node kedua?).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat