django-anymail is a Django library that provides a unified interface for sending transactional email through multiple Email Service Providers (ESPs) such as Amazon SES, Mailgun, SendGrid, Postmark, SparkPost, Mailjet, Brevo, Resend, Mailtrap, Postal, Scaleway, Unisender Go, and MailerSend. It extends Django's built-in email framework with ESP-specific features like tags, metadata, inline images, merge data, templates, and click/open tracking. The library also handles inbound email and tracking webhooks, normalizing ESP-specific events into Django signals. Architecture follows a backend pattern: each ESP has a concrete EmailBackend class that implements `build_message_payload` and `post_to_esp`, with common logic in base classes (`AnymailRequestsBackend`, `BasePayload`). Webhook views are similarly structured with base classes for signature validation and event dispatch. The codebase is well-tested with both mock unit tests and live integration tests run weekly against real ESP APIs. It is a mature, actively maintained library with a clean separation of concerns and extensive documentation.
This repository is the official Twilio SendGrid Java SDK, providing a comprehensive client library for the SendGrid v3 Web API. Its primary purpose is to enable Java applications to send transactional and marketing emails, manage suppression lists, retrieve email statistics, and interact with all other SendGrid API endpoints. The library is designed as a thin HTTP client wrapper, with a core `SendGrid` class that accepts an API key and exposes synchronous (`api()`) and asynchronous (`attempt()`) methods for making REST calls. A high-level `Mail` helper simplifies building complex email payloads with personalizations, attachments, tracking settings, and templates. The architecture follows a clean separation: the `BaseInterface` handles HTTP client configuration, rate limiting (automatic retry on 429), data residency (EU/global regions), and subuser impersonation. The `Request`/`Response` POJOs provide a uniform interface for all API calls. The library includes a robust event webhook verification module (`EventWebhook.java`) using ECDSA signatures, and a builder pattern for attachments that supports both `InputStream` and `String` content. External dependencies include Jackson for JSON serialization, Bouncy Castle for cryptography, and Apache Commons Codec. The codebase is well-structured with extensive examples covering all major API endpoints, unit tests using JUnit 4 and Mockito, and CI/CD via GitHub Actions. While the test file is large and repetitive, the core abstractions are clean and the library is actively maintained. It is not a data research or analytics tool; it is purely an API client library intended for integration into Java applications.