Saat menggunakan fungsi sendgridMail.send
untuk mengirim Template Transaksi, setiap baris subjek ditambahkan ke objek data
yang diteruskan sendgridMail.send
(melalui data.subject
atau data.personalizations[someIndex].subject
) dibuang dan baris subjek yang ditentukan pada Templat Transaksional yang sebenarnya digunakan.
Perilaku yang saya harapkan adalah bahwa bidang yang ditentukan pada objek data
akan menimpa bidang templat yang ada, tetapi tampaknya tidak demikian. Melihat dokumentasi untuk API Pengiriman Surat v3, deskripsi bidang template_id
menyatakan:
Id template yang ingin Anda gunakan. Jika Anda menggunakan template yang berisi subjek dan konten (teks atau html), Anda tidak perlu menentukannya di tingkat personalisasi atau pesan.
Bagi saya, "Anda tidak perlu menentukannya di tingkat personalisasi atau pesan" menyiratkan bahwa Anda dapat mengganti subjek template. Jika bukan itu masalahnya, deskripsi harus diubah menjadi "Anda tidak dapat menentukannya di tingkat personalisasi atau pesan".
sendgridMail.send
mana saya menetapkan data.subject
menjadi "[TEST] Subjek Email Saya"sendgridMail.send
untuk mengirim template. Pastikan juga untuk menentukan data.subject
atau data.personalizations[someIndex].subject
.Halo @10kc-zack,
Saya percaya pada templat transaksional Anda akan menetapkan subjek menjadi {{ subject }}, kemudian dalam kode Anda, Anda menetapkan data.subject
menjadi "[TEST] My Email Subject"
.
Apakah itu berhasil untuk Anda?
Salam hangat,
Elmer
Terima kasih atas balasannya @thinkingserious dan saran Anda!
Meskipun ini menyelesaikan pekerjaan (dan merupakan solusi yang kami gunakan saat ini), saya lebih suka dapat mengatur subjek sebagai bagian dari badan panggilan API kami. Apakah Anda dapat mengonfirmasi bahwa sebenarnya subjek yang disediakan untuk API dibuang dan informasi tersebut hilang dari dokumentasi API?
Halo @10kc-zack,
Saya percaya pada templat transaksional Anda akan menetapkan subjek menjadi {{ subject }}, kemudian dalam kode Anda, Anda menetapkan
data.subject
menjadi"[TEST] My Email Subject"
.Apakah itu berhasil untuk Anda?
Salam hangat,
Elmer
Seperti yang dinyatakan @10kc-zack, solusi ini berhasil, tetapi saya juga memperhatikan bahwa templat mengubah beberapa karakter seperti '
apostrofi.. yaitu "Seseorang" ke entitas html. Email saya tiba dengan subjek Someone's
Saya mengalami kesulitan mengatur baris subjek menggunakan metode paket SendMail Nuget. Ini kode saya, yang saya coba perbarui menggunakan info di atas:
public async Task SendAsyncTemplate(string FromAddress, string FromName, string ToAddress, string ToName, string Subject, string LinkText, string LinkUrl)
{
_logger.LogInformation($"Sending mail to: {ToAddress}, with subject: {Subject}");
var apiKey = _sendGridOptions.SendGridAPI;
var client = new SendGridClient(apiKey);
var from = new EmailAddress(FromAddress, FromName);
var to = new EmailAddress(ToAddress, ToName);
var msg = new SendGridMessage();
var templateData = new ExampleTemplateData
{
Subject = Subject,
Name = ToName,
LinkText = LinkText,
LinkUrl = LinkUrl
};
msg.Subject = "{{subject}}";
msg.SetFrom(from);
msg.AddTo(to);
msg.AddCc(from);
msg.SetTemplateId("supersecret");
msg.SetTemplateData(templateData);
var response = await client.SendEmailAsync(msg);
_logger.LogInformation($"SendGrid Response Status Code: {response.StatusCode}");
}
private class ExampleTemplateData
{
[JsonProperty("subject")]
public string Subject { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("linkText")]
public string LinkText { get; set; }
[JsonProperty("linkUrl")]
public string LinkUrl { get; set; }
}
Saya telah menjalankan dalam mode debugging dan nilai-nilai diatur dengan benar. Apa yang saya dapatkan sebagai baris subjek adalah tanda hubung. Ada ide?
Doh! Saya menemukan di mana {{subject}} perlu disetel. Jika ada orang lain yang mengalami masalah ini, masuk untuk mengedit template Anda, lalu klik "Pengaturan" di sebelah kiri. Akan ada ruang untuk memasukkan Subjek Anda. Masukkan {{subjek}} di sini.
@smschick ,
Dalam kasus Anda, Anda akan melakukan {{{ subject }}}
.
@10kc-zack,
Saya memiliki permintaan terbuka untuk mengubah dokumentasi. Saya berasumsi Anda mengacu pada dokumentasi ini , benar?
Salam hangat,
Elmer
@thinkingserious Itu memang dokumentasi yang saya maksud :+1:
apakah ada rencana untuk dapat mengatur subjek melalui API tanpa menggunakan dynamic_template_data
?
@mou01 Contoh sederhana di sini untuk cara mengatur subjek: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/single-email-single-recipient.md
Ya, agak membingungkan bahwa Anda tidak dapat meneruskan subjek melalui personalisasi saat menggunakan data templat dinamis, Anda harus meneruskannya dalam data yang tampaknya.
@mou01 Contoh sederhana di sini untuk cara mengatur subjek: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/single-email-single-recipient.md
apakah ini bekerja dengan template dinamis?
Saya rasa tidak, saya pikir ide di balik template dinamis adalah Anda mengatur subjek dalam pengaturan template, dan Anda bisa menggunakan data dinamis dalam subjek. Imbalannya adalah Anda harus meneruskannya dalam data dinamis jika Anda ingin sepenuhnya fleksibel.
jika ada yang mengalami masalah ini:
buka template Anda dan klik "Pengaturan" dengan ikon roda gigi dan letakkan ini di bidang subjek {{subject}}
dan akhirnya saat mengirim payload Anda " dynamic_template_data " harus memiliki nilai subjek.
"dynamic_template_data":{
"subject": "My Subject Value here"
}
Menutup masalah ini karena dokumen berubah bukanlah sesuatu yang dapat diperbaiki dalam repo ini. Saya telah mengirimkan permintaan ke tim dokumen (judul referensi: _Updates to mail-send template_id description_) dan akan kembali ke sini dengan pembaruan apa pun.
Dokumen telah diperbarui.
Terima kasih @childish-sambino
Kurung rangkap tiga masih berfungsi, apakah itu masih merupakan solusi resmi?
Terima kasih!
@tcukanoot Ya.
Komentar yang paling membantu
Doh! Saya menemukan di mana {{subject}} perlu disetel. Jika ada orang lain yang mengalami masalah ini, masuk untuk mengedit template Anda, lalu klik "Pengaturan" di sebelah kiri. Akan ada ruang untuk memasukkan Subjek Anda. Masukkan {{subjek}} di sini.