⚲
Project
General
Profile
Sign in
Register
Home
Projects
Help
Search
:
Investeam
All Projects
Investeam
Overview
Activity
Issues
Spent time
Gantt
Calendar
News
Documents
Wiki
Files
Download (1.92 KB)
Tareas #5500
» proceso webhook mandrillapp.txt
Jose Orlando
, 05/17/2025 05:27 PM
import org.springframework.web.bind.annotation.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
import java.util.List;
import java.util.Map;
@RestController
public class MandrillWebhookController {
@PostMapping("/webhook-mandrill")
public String handleMandrillWebhook(@RequestParam("mandrill_events") String mandrillEventsJson) {
try {
ObjectMapper mapper = new ObjectMapper();
// El campo es un JSON Array en String, por eso se parsea así
List<Map<String, Object>> eventos = mapper.readValue(mandrillEventsJson, new TypeReference<List<Map<String, Object>>>(){});
for (Map<String, Object> evento : eventos) {
String tipoEvento = (String) evento.get("event");
Map<String, Object> msg = (Map<String, Object>) evento.get("msg");
String email = (String) msg.get("email");
switch (tipoEvento) {
case "open":
System.out.println("Correo abierto: " + email);
break;
case "click":
System.out.println("Clic en correo: " + email);
break;
case "hard_bounce":
System.out.println("Rebote permanente: " + email);
break;
case "spam":
System.out.println("Marcado como spam: " + email);
break;
// Agrega los casos que necesites
default:
System.out.println("Evento recibido: " + tipoEvento + " para " + email);
}
}
} catch (Exception e) {
e.printStackTrace();
}
// Mandrill espera un 200 OK
return "ok";
}
}
(1-1/1)
Loading...