Таким образом, похоже, что ваше решение переходит от использования протокола SMTP для отправки сообщений на ваш почтовый сервер к использованию API, который принимает JSON.
Из ваших комментариев я вижу, что он принимает формат JSON, такой какэто:
{
"Email": "example@example.com",
"CustomerNumber": 123456789,
"ExternalMessageID": "1-222",
"CustomerName": "John Smith",
"CampaingName": "A Campaign name",
"Extrafields": "opcional1;opcional2"
}
Я предполагаю, что узел "Extrafields" является строкой, а не массивом, поскольку он имеет такой формат.
Для работы с Json в C # выВам нужно будет импортировать JSON.NET в ваше решение, если вы этого еще не сделали.Затем мы можем использовать ваш существующий обработчик событий в приведенном выше коде и использовать его для создания следующего объекта:
public class MailMessage
{
public string Email { get; set; }
public int CustomerNumber { get; set; }
public string ExternalMessageID { get; set; }
public string CustomerName { get; set; }
public string CampaingName { get; set; }
public string Extrafields { get; set; }
}
Затем вы можете использовать JSON.NET для сериализации этого объекта в строку JSON и отправить его вAPI в требуемом формате.Но поскольку ваша компания также требует аутентификации, вам нужно добавить заголовок в ваш запрос POST.Я также рекомендовал бы использовать RestSharp , чтобы сделать вашу жизнь проще.
Вы можете использовать что-то вроде следующего, чтобы запустить все это и запустить:
protected void Send_Button(object sender, EventArgs e)
{
//Creates new MailMessage Object
MailMessage mm = new MailMessage{
Email = "someone@example.com",
CustomerNumber = 123456789,
ExternalMessageID = "1-222",
CustomerName = "John Smith",
CampaingName = "A Campaign name",
Extrafields = "opcional1;opcional2"
};
var client = new RestClient("https://apitp.trial/"); //Makes a RestClient that will send your JSON to the server
var request = new RestRequest("Online/Mail", Method.POST); //Sets up a Post Request your your desired API address
request.AddHeader("api........?authorization", "INSERT YOUR BASE64 STRING HERE")
request.AddHeader("Content-type", "application/json"); //Declares this request is JSOn formatted
request.AddJsonBody(mm); //Serializes your MailMessage into a JSON string body in the request.
var response = client.Execute(request); //Executes the Post Request and fills a response variable
}
Просто вставьте свои зашифрованные учетные данные Base64, где я указал, и вы можете включить некоторую логику в переменную ответа, чтобы убедиться, что она обработана правильно.Переменная Response имеет StatusCode
, код 200 будет указывать на успех.