{
  "name": "smtp-gateway",
  "title": "SMTP Gateway (Inbound Email)",
  "category": "Integration",
  "description": "Receive email in an Internet Computer canister through the SMTP Gateway Protocol. Covers implementing smtp_request and smtp_request_validate, addressing (user@<canister-id>.icp0.io, custom domains, handing mail to another canister with /.well-known/ic-smtp-canister-id), how the gateway turns reply codes into SMTP (5xx bounces, everything else retries, 550 rejects one recipient), what actually arrives (raw headers, raw MIME body, a per-attempt message_id, no sender authentication), the ic-smtp-gateway-protocol Rust crate, and the optional chunked upload for messages over 2 MiB. Use when a canister must receive or process inbound email, when implementing the SMTP gateway Candid interface, or when mail to a canister bounces, is retried, or never arrives. Do NOT use for sending email from a canister (the gateway is inbound only; call an email API with https-outcalls) or for serving HTTP from a canister.",
  "license": "Apache-2.0",
  "compatibility": "icp-cli >= 0.2.2; Rust examples: ic-cdk 0.20 with ic-smtp-gateway-protocol 0.1 (plus sha2 0.11 for chunked upload); Motoko examples: moc >= 1.11.0 with core >= 2.5.0",
  "updated": "2026-10-28T10:54:51.000Z",
  "urls": {
    "html": "https://skills.internetcomputer.org/skills/smtp-gateway/",
    "markdown": "https://skills.internetcomputer.org/.well-known/skills/smtp-gateway/SKILL.md",
    "json": "https://skills.internetcomputer.org/api/skills/smtp-gateway.json",
    "source": "https://github.com/dfinity/icskills/blob/a69e27c7ed64202cd4c63558bae1a6a390456b70/skills/smtp-gateway/SKILL.md"
  },
  "publisher": {
    "name": "DFINITY Foundation",
    "url": "https://dfinity.org"
  },
  "canonicalRepo": {
    "name": "dfinity/icskills",
    "url": "https://github.com/dfinity/icskills"
  }
}
