2016-02-25 2 views
1

Привет, я недавно использовал mailgun api для отправки почты. Я могу отправить почту, но мне нужно знать, что каждое мое письмо отправляется или нет.не удалось прочитать данные событий api mailgun

поэтому я ищу mailgun api, который дает отчет о доставке. и я нашел события api.

Я прочитал все документы, но я не могу получить надлежащий ответ, как они упоминают в документации.

мой код работает нормально, но не может получить ответ.

вот мой код.

public static ClientResponse GetLogs() { 
    Client client = new Client(); 
    client.addFilter(new HTTPBasicAuthFilter("api","YOUR_API_KEY")); 
    WebResource webResource =client.resource("https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/events"); 
    MultivaluedMapImpl queryParams = new MultivaluedMapImpl(); 
    queryParams.add("event", "rejected OR failed"); 
    return webResource.queryParams(queryParams).get(ClientResponse.class); 
} 

и я получаю к этому товару, как

GET https://api.mailgun.net/v3/sandboxcf4a9eb67b97489ab540dcc0e865cb0d.mailgun.org/events?event=delivered returned a response status of 200 OK 

, и это должно быть так, как в documentaion из mailgun

{ 
    "items": [ 
    { 
    "severity": "temporary", 
    "tags": [], 
    "envelope": { 
    "sender": "[email protected]", 
    "transport": "" 
    }, 
    . 
    . 
    . 
    . 
} 

я искать решение по сети, но не в состоянии получить правильное решение.

, пожалуйста, помогите из этой проблемы.

благодарит заранее.

ответ

2

Да, я получил решение на самом деле, я печатал ответ в консоли и, если вы печатаете объект в java, он вызывает метод string. и именно поэтому мой выход был

ET https://api.mailgun.net/v3/sandboxcf4a9eb67b97489ab540dcc0e865cb0d.mailgun.org/events?event=delivered returned a response status of 200 OK 

я должен читать входной поток и должен разобрать его в объект JSON.

Теперь я получаю ожидаемый ответ от mailgun.

Я знал об использовании json-сервиса в java, поэтому у меня были проблемы.

код для разбора это .... товара

JSONObject jsonObject = null; 
    InputStream inputSrem = clientResponse.getEntityInputStream(); 
    BufferedReader streamReader = new BufferedReader(new InputStreamReader(inputSrem, "UTF-8")); 
    StringBuilder responseStrBuilder = new StringBuilder(); 

     String inputStr; 

     while ((inputStr = streamReader.readLine()) != null) 
      responseStrBuilder.append(inputStr); 

     jsonObject = new JSONObject(responseStrBuilder.toString()); 

надежда, так что это поможет другим тоже.

1

Слишком легко получить ответ JSON от mailgun @Rahul Ответ на вопрос о том, как много длинных, это всего лишь один код строки, но оцените ваш ответ.

System.out.println("Result -->"+clientResponse.getEntity(String.class)); 

ВЫВОД

Result -->{ 
    "campaign": { 
    "bounced_count": 0, 
    "clicked_count": 0, 
    "complained_count": 0, 
    "created_at": "Wed, 12 Oct 2016 11:18:56 GMT", 
    "delivered_count": 0, 
    "dropped_count": 0, 
    "id": "my_campaign_id", 
    "name": "Newsletter", 
    "opened_count": 0, 
    "submitted_count": 0, 
    "unsubscribed_count": 0 
    }, 
    "message": "Campaign created" 
} 

Примечание: При создании кампании, что время над JSON ответ.

Смежные вопросы