Как узнать статус электронной почты (mailject)
Я использую Mailjet SMTP для отправки электронной почты. Теперь я хочу проверить, было ли отправлено письмо или нет. У Mailjet такой статус электронной почты, но как мне получить доступ к этой информации? У Mailjet тоже есть этот API, но это в php...
Если я использую DeliveryNotificationOptions
можно решить это? Что-то вроде этого:
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure | DeliveryNotificationOptions.Delay;
1 ответ
Решение
Я могу общаться с API Mailjet как:
Uri address = new Uri("http://api.mailjet.com/0.1/reportEmailsent");
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
request.Method = "GET";
request.KeepAlive = true;
request.Headers.Add("apiKey", "numberapiKey");
request.Headers.Add("secretKey", "numbersecretKey");
request.Credentials = new NetworkCredential("apiKey", "serialKey");
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.Accept = "application/x-www-form-urlencoded; charset=UTF-8";
Теперь получаю ответ:
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
Stream ResponseStream = null;
ResponseStream = response.GetResponseStream();
int responseCode = (int)response.StatusCode;
string responseBody = ((new StreamReader(ResponseStream)).ReadToEnd());
}