Email Receiving Service for Developers

CloudMailin is an email receiving service built for developers. Our cloud-native infrastructure handles inbound email processing and delivers parsed messages to your application via HTTP POST in about a second.

No IMAP polling, no complex email parsing - just simple webhooks with JSON.

// Example Email to HTTP POST in the JSON Format
{
  "headers": {
    "Return-Path": "from@example.com",
    "Received": [
      "by 10.52.90.229 with SMTP id bz5cs75582vdb; Mon, 16 Jan 2012 09:00:07 -0800",
      "by 10.216.131.153 with SMTP id m25mr5479776wei.9.1326733205283; Mon, 16 Jan 2012 09:00:05 -0800",
      "from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by mx.google.com with ESMTPS id u74si9614172weq.62.2012.01.16.09.00.04 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 16 Jan 2012 09:00:04 -0800"
    ],
    "Date": "Mon, 16 Jan 2012 17:00:01 +0000",
    "From": "Message Sender <sender@example.com>",
    "To": "Message Recipient<to@example.co.uk>",
    "Message-ID": "<4F145791.8040802@example.com>",
    "Subject": "Test Subject",
    "Mime-Version": "1.0",
    "Content-Type": "multipart/alternative; boundary=------------090409040602000601080801",
    "Delivered-To": "to@example.com",
    "Received-SPF": "neutral (google.com: 10.0.10.1 is neither permitted nor denied by best guess record for domain of from@example.com) client-ip=10.0.10.1;",
    "Authentication-Results": "mx.google.com; spf=neutral (google.com: 10.0.10.1 is neither permitted nor denied by best guess record for domain of from@example.com) smtp.mail=from@example.com",
    "User-Agent": "Postbox 3.0.2 (Macintosh/20111203)"
  },
  "envelope": {
    "to": "to@example.com",
    "from": "from@example.com",
    "helo_domain": "localhost",
    "remote_ip": "127.0.0.1",
    "recipients": [
      "to@example.com",
      "another@example.com"
    ],
    "spf": {
      "result": "pass",
      "domain": "example.com"
    }
  },
  "plain": "Test with HTML.",
  "html": "<html><head>\n<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\"></head><body\n bgcolor=\"#FFFFFF\" text=\"#000000\">\nTest with <span style=\"font-weight: bold;\">HTML</span>.<br>\n</body>\n</html>",
  "reply_plain": "Message reply if found.",
  "attachments": [
    {
      "content": "dGVzdGZpbGU=",
      "file_name": "file.txt",
      "content_type": "text/plain",
      "size": 8,
      "disposition": "attachment"
    },
    {
      "content": "Q2Fmw6kgbWVudQotIEVzcHJlc3NvIOKCrDMuNTAKLSBMYXR0w6kg4oKsNC4wMA==",
      "file_name": "menu.txt",
      "content_type": "text/plain",
      "size": 42,
      "disposition": "attachment"
    }
  ]
}
  • No More SMTP Servers

    Stop managing mail servers. CloudMailin receives email and POSTs it to your webhook - no infrastructure required.

  • No More Polling

    Forget IMAP connections and slow polling. Email arrives at your HTTP endpoint in about a second.

  • No Parsing Required

    Stop wrestling with MIME, encodings, and attachments. We parse everything into clean, structured JSON.

  • How Inbound Email Processing Works

    CloudMailin's email receiving service handles the complexity of receiving and parsing email so you don't have to.

    • 1. Email Arrives

      Emails are sent to your CloudMailin address or your own custom domain. Our servers receive the inbound mail instantly.

    • 2. We Parse It

      Our custom-built servers parse the email, extract attachments, and convert everything into a clean, structured format.

    • 3. HTTP POST to Your App

      We deliver the parsed email to your webhook endpoint as JSON, multipart form data, or raw format - your choice.

    Inbound email processing flow - email to API
  • Simple Webhook Integration

    Receive emails with just a few lines of code. CloudMailin POSTs parsed JSON to your endpoint - no complex setup required.

    Access headers, body content, and attachments directly from the request. Your webhook responds with 200 OK and you're done.

    app.post('/incoming_mails', (req, res) => {
      const { envelope, headers, plain, html } = req.body;
      console.log(`Email from ${envelope.from}`);
      console.log(`Subject: ${headers.subject}`);
      res.status(200).json({ status: 'ok' });
    });
  • Works with Any Language or Framework

    Because CloudMailin delivers email via HTTP POST, you can use any programming language or framework. No SDK required - just parse the JSON.

    Node.js, Python, Ruby, PHP, Go, Rust, TypeScript, Java, C#... if it can handle an HTTP request, it works with CloudMailin.

    See examples for all languages

    Email receiving service works with any framework - Node.js, Ruby, Python, PHP, Go
  • Secure by Default

    Your inbound email is handled securely from the moment it arrives.

    • TLS Encryption

      All connections support TLS. We'll even tell you if an email was sent without encryption so you can enforce it.

    • SPF, DKIM & DMARC

      We can verify sender authentication and include the results in your webhook, helping you filter spam and phishing.

    • Your Own Cloud Storage

      Large attachments can be stored directly in your AWS S3, Google Cloud Storage, or Azure Blob Storage.

    Secure inbound email processing with TLS and SPF verification

Testimonials

Don't just take our word for it

CloudMailin has been instrumental in our growth at ExpressSteuer. The system is not only incredibly easy to implement, but also highly reliable and robust. What's more, their support team is simply amazing - always quick to respond and provide effective solutions to any challenge we encounter. We couldn't be more pleased with the service provided by CloudMailin!
Profile Picture
Andreas Santoro
CTO, ExpressSteuer
Thanks for the rock solid decade
Profile Picture
Dan
CamelCamelCamel.com
The product is perfect, feature rich, nice and intuitive UI and great support. It was really easy to integrate it into our application. It enables our application to receive inbound traffic, to give better support to clients and to expand our mailing options.
Profile Picture
Francisco (Kiko) R.
Head of Engineering, ProFinda.com

Start Receiving Email in Minutes

The first 10,000 emails per month are free. No credit card required.

Get Started View Documentation