> For the complete documentation index, see [llms.txt](https://docs.maildrop.cc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maildrop.cc/developer-documentation.md).

# Developer Documentation

<div align="left"><figure><img src="/files/wr9QeKzmEUWcV95dTyI2" alt="A woman sitting with a laptop"><figcaption></figcaption></figure></div>

Maildrop provides an easy-to-use API that lets you programmatically retrieve mailbox listings and individual messages, delete messages, and more.

### Maildrop Architecture

Maildrop is built on a very straightforward architecture - as messages come in, they are checked against a variety of antispam filters written by [Heluna](https://heluna.com/). Messages which pass the filters get immediately queued and placed into a database.

{% hint style="info" %}
The first time you email a maildrop.cc address from a mail server that Maildrop hasn't seen before, Maildrop will respond with a temporary failure telling your mail server to try again. This is a concept known as "[greylisting](https://en.wikipedia.org/wiki/Greylisting_\(email\))", which is one effective antispam technique. Most mail servers will retry their delivery within 15 minutes, which Maildrop will then accept.
{% endhint %}

### Temporary, Throwaway Mailboxes

Maildrop mailboxes are *temporary*; that is, if a mailbox doesn't get a message within 24 hours, it erases all of its messages. Additionally, during periods of high usage, mailboxes which have not had a message added recently may be evicted to make space for new messages.

Maildrop mailboxes can hold a maximum of **10 messages**, after which the oldest messages will be deleted.

### Sending Email from Maildrop

Maildrop **can not send email** under any circumstances. The SPF record for Maildrop is set so that no host on the internet should be sending messages from the maildrop.cc domain - you can (and should) ignore all emails from a maildrop.cc address.

```bash
% nslookup -type=txt maildrop.cc
Server:		100.100.100.100
Address:	100.100.100.100#53

Non-authoritative answer:
maildrop.cc	text = "v=spf1 -all"
```
