Hızlı başlangıç
Sıfırdan, HTTP üzerinden geri okunan bir mesaja, dört komutla. Hesap yok, anahtar yok, SDK yok.
1. Bir adres seçin
Genel alan adlarımızdan herhangi birinde, istediğiniz bir ad. Çağrılacak ya da kaydedilecek hiçbir şey yoktur — adres, kendisine bir şey teslim edildiği anda gerçek olur.
Kimsenin gelip başına dolanmasını istemiyorsanız tahmin edilemez tutun: genel bir alan adında, adres, posta kutusu ile dünya arasındaki tek engeldir.
$ ADDR="ci-$(openssl rand -hex 4)@grabmail.io"; echo "$ADDR"2. Ona bir şey gönderin
Kayıt formunda, parola sıfırlama akışında veya test ettiğiniz her neyse onda kullanın. Teslimat normalde birkaç saniye sürer.
Posta sunucularımız 5 MB'a kadar mesajları kabul eder. Daha büyük olan her şey SMTP aşamasında reddedilir; böylece gönderen, merakta bırakılmak yerine hemen bilgilendirilir.
$ curl -sX POST https://your-app.example/signup --data-urlencode "email=$ADDR"3. Posta kutusunu yoklayın
Saniyede bir istek amaçlanan ritimdir ve asla kısıtlanmaz. Boş bir posta kutusu count: 0 ile 200 döner — asla 404 değil; bu yüzden döngünüzün onu özel olarak ele alması gerekmez.
Bu kod parçası sonsuza dek dönmek yerine bir dakika sonra vazgeçer; CI'da istediğiniz de budur.
$ for i in $(seq 60); do
ID=$(curl -sG https://grabmail.io/api/v1/mailbox --data-urlencode "address=$ADDR" | jq -r '.messages[0].id // empty')
[ -n "$ID" ] && break
sleep 1
done; echo "$ID"4. Okuyun, sonra atın
Mesajı getirin ve ne için geldiyseniz onu çıkarın — burada, düz metin bölümünden altı haneli bir kod.
Silmek isteğe bağlıdır: her şey 5 gün sonra kendiliğinden gider. Yine de CI'da yapın; bir sonraki çalıştırma temiz bir posta kutusuyla başlasın.
$ curl -sG https://grabmail.io/api/v1/message/$ID --data-urlencode "mailbox=$ADDR" \
| jq -r .text | grep -oE '[0-9]{6}'
curl -sX DELETE -G https://grabmail.io/api/v1/message/$ID --data-urlencode "mailbox=$ADDR"CI'ye bağlama
Gerçek postayı okuyan bir test paketinin kararsızlaşmasını önleyen iki alışkanlık:
- Her çalıştırmada yeni bir adres
- Onu derleme kimliğinden veya rastgele bir sonekten türetin. Bir adresi çalıştırmalar arasında tekrar kullanmak, dünkü mesajın bugünün doğrulamasını geçmesine yol açabilir.
- Bir yeniden deneme sayısı değil, bir son tarih
- Yukarıdaki gibi bir duvar saati zaman aşımına karşı yoklama yapın. Gönderen yavaşladıkça yeniden deneme sayıları sessizce artar.
- Teslim süresi hakkında asla varsayımda bulunmayın
- Posta eş zamanlı değildir. Mesajın belirli bir saniyede değil, varacağını doğrulayın.
- Gerçek herhangi bir şey için kendi alan adınızı kullanın
- Herkese açık bir posta kutusu, adresi tahmin eden herkes tarafından okunabilir. Tek kullanımlık bir kayıt için bu sorun değildir, ancak müşteri verisi barındıran bir hazırlık (staging) ortamı için sorundur. Tek bir MX kaydı bunu çözer.
Yapay zeka ajanları için: MCP
Bir yapay zeka ajanı bu sayfayı okuyup hangi uç noktayı istediğine karar veremez ve bir istek yazamaz. Bir sunucuya hangi araçların var olduğunu sorar ve onları çağırır. GrabMail, tam da bunun için https://grabmail.io/mcp adresinde bir Model Context Protocol sunucusu çalıştırır — anahtar yok, hesap yok.
Herhangi bir MCP istemcisini bu uç noktaya yönlendirin. Claude Desktop, Cursor, Continue ve OpenAI Agents SDK hepsi bu biçimi okur.
Altı araç: create_inbox, list_domains, list_messages, read_message, delete_message ve wait_for_message.
$ {"mcpServers":{"grabmail":{"url":"https://grabmail.io/mcp"}}}Önemli olan wait_for_message'dır. Bir yapay zeka ajanının geçici bir posta kutusu istemesinin nedeni neredeyse her zaman, onu bir sonraki adımdan ayıran bir doğrulama kodudur. Belirteç harcayarak döngü içinde yoklamak yerine bir adres ister, formu gönderir ve posta ulaşana kadar bekler:
25 saniyeye kadar bekler ve mesajı eksiksiz döndürür — gönderen, konu, gövde — ya da zaman aşımına uğradığını söyler; böylece ajan yalnızca yeniden çağırabilir.
Belirli bir mesajı da bekleyebilir: subject_contains veya from_contains geçirin, gelen başka her şey yok sayılır.
$ curl -sX POST https://grabmail.io/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"wait_for_message","arguments":{"address":"you@grabmail.io","subject_contains":"code"}}}'Kod üreticileri için bir OpenAPI 3.1 şartnamesi (YAML) ve düz metin okumayı tercih eden her şey için llms.txt de mevcuttur.
İleri
API referansı
Her parametre, her durum kodu, hata biçimi.
Sınırlar
Nelerin sınırlandığı, nelerin sınırlanmadığı ve tavana ulaşıldığında ne olduğu.
Kendi alan adınız
Alan adınızdaki her posta kutusunu size özel yapın.