Я пытаюсь отправить электронное письмо с помощью Brevo, имея существующий шаблон, который может отправлять электронное письмо, но не видит обновленное свойство в электронном письме. Вот мой код
static void Main(string[] args)
{
string apiKey = "";
// API endpoint for sending SMTP emails
string apiUrl = "https://api.sendinblue.com/v3/smtp/email";
// Example email data with template
var emailData = new
{
sender = new { email = "[email protected]", name = "A" },
to = new List<object> { new { email = "[email protected]" } },
templateId = 1, // Template ID from Brevo
**value = new Dictionary<string, object>
{
{ "EMPLOYEENAME", "MYNAME" },
}**
};
// Serialize email data to JSON
string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(emailData);
// Create HTTP client instance
using (var client = new HttpClient())
{
// Add API key to request headers
client.DefaultRequestHeaders.Add("api-key", apiKey);
try
{
// Create HTTP POST request
var response = client.PostAsync(apiUrl, new StringContent(jsonData, Encoding.UTF8, "application/json")).Result;
// Check if request was successful
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Email sent successfully.");
}
else
{
string errorMessage = response.Content.ReadAsStringAsync().Result;
Console.WriteLine($"Failed to send email. Error: {errorMessage}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error sending email: {ex.Message}");
}
}
}
Я пытаюсь заменить это, но почему-то это не работает
**value = new Dictionary<string, object>
{
{ "EMPLOYEENAME", "MYNAME" },
}**
Это мой конструктор шаблонов
Это то, что я добавил в свои атрибуты контакта
Добавляем дизайн шаблона
Я думаю, причина в том, что вы передаете аргументы в шаблон, используя value
. Вы должны передать их, используя params
, по крайней мере, так сказано в документации.
Итак, попробуйте что-то вроде этого:
var emailData = new
{
sender = new { email = "[email protected]", name = "A" },
to = new List<object> { new { email = "[email protected]" } },
templateId = 1, // Template ID from Brevo
@params= new Dictionary<string, object>
{
{ "EMPLOYEENAME", "MYNAME" },
}
};
Пустая трата, которую я не могу подключить, чтобы проверить это самостоятельно (я получаю несанкционированный доступ :)), но, возможно, есть какой-то очень специфический способ передачи этих параметров. Он должен работать.
Хорошо, я не могу увидеть данное имя в полученном письме.
@Разработчик, возможно, проблема с шаблоном. Убедитесь, что имя заполнителя совпадает с именем отправляемого вами ключа EMPLOYEENAME
. Во-вторых, убедитесь, что заполнитель в шаблоне электронного письма правильно отформатирован. Вы получаете какие-либо ошибки от API?
@Bartisz нет ошибок от API. Я получаю электронные письма, единственная проблема заключается в замене EMPLOYEENAME. Я добавил дизайн шаблона
@Разработчик, откуда ему знать, что EMPLOYEENAME
то, что вы даете, находится в contact
объекте? Или где в вашем коде вы инициализируете объект contact
?
Так стоит ли мне делать что-то подобное? динамические транзакцииParams = новый {params = новый {контакт = новый {EMPLOYEENAME = "JohnDoe", } } };
Честно говоря, я никогда не использовал этот инструмент, я просто ввел документацию, чтобы ответить на ваш вопрос. Найдите способ, которым это нужно сделать в документации, и все должно работать нормально :)
Хорошо, можете ли вы поделиться документацией, которую вы прочитали?
developers.brevo.com/reference/getting-started-1 Согласно документации, вы должны использовать params.EMPLOYEENAME
в своем шаблоне.
Мне удалось прочитать содержимое шаблона и заменить его.
@Разработчик, если мой ответ решил вашу проблему, подумайте о том, чтобы принять его.
Когда я использую параметры, он показывает некоторую ошибку. Неверный декларатор члена анонимного типа. Члены анонимного типа должны быть объявлены с присвоением члена, простым именем или доступом к члену.