První kompletní e-mailové API: Jak přeposílání e-mailů způsobilo revoluci ve správě e-mailů

TL;DR: Vytvořili jsme první kompletní REST API na světě pro správu e-mailů s pokročilými vyhledávacími funkcemi, které žádná jiná služba nenabízí. Zatímco Gmail, Outlook a Apple nutí vývojáře do pekla IMAP nebo API s omezenou rychlostí, Forward Email nabízí bleskově rychlé operace CRUD pro zprávy, složky, kontakty a kalendáře prostřednictvím jednotného rozhraní REST s více než 15 parametry vyhledávání. Na toto vývojáři e-mailového API čekali.
Problém s e-mailovým API
E-mailová API rozhraní jsou zásadně nefunkční. Tečka.
Každý velký poskytovatel e-mailových služeb nutí vývojáře k jedné ze dvou hrozných možností:
- Peklo IMAP: Zápas s 30 let starým protokolem určeným pro desktopové klienty, nikoli pro moderní aplikace
- Omezená API: Rozhraní API s omezenou rychlostí, pouze pro čtení a komplexní OAuth, která nedokážou spravovat vaše skutečná e-mailová data
Výsledek? Vývojáři buď zcela opustí integraci e-mailů, nebo ztrácejí týdny budováním křehkých IMAP wrapperů, které neustále porouchávají.
Warning
Špinavé tajemství: Většina „e-mailových API“ jsou pouze odesílací API. Nemůžete programově organizovat složky, synchronizovat kontakty ani spravovat kalendáře prostřednictvím jednoduchého rozhraní REST. Až doteď.
Co vývojáři vlastně říkají
Frustrace je skutečná a zdokumentovaná všude:
„Nedávno jsem se pokusil integrovat Gmail do své aplikace a strávil jsem s tím příliš mnoho času. Rozhodl jsem se, že nemá cenu Gmail podporovat.“
- Vývojář Hacker News, 147 hlasů pro
„Jsou všechna e-mailová API průměrná? Zdá se, že jsou nějakým způsobem omezená nebo omezující.“
„Proč musí být vývoj e-mailů na nic?“
- Reddit r/webdev, 89 komentářů o problémech vývojáře
„Co dělá Gmail API efektivnějším než IMAP? Dalším důvodem, proč je Gmail API mnohem efektivnější, je to, že každou zprávu stačí stáhnout pouze jednou. U IMAP se každá zpráva musí stáhnout a indexovat...“
- Otázka ohledně přetečení Stacku s 47 hlasy pro
Důkazy jsou všude:
- Problémy s SMTP ve WordPressu: 631 problémů s GitHubem ohledně selhání doručování e-mailů
- Omezení Zapieru: Stížnosti komunity limity 10 e-mailů za hodinu a selhání detekce IMAP
- Projekty IMAP API: Násobek open-source projekty existují speciálně pro „převod IMAP na REST“, protože žádný poskytovatel tuto funkci nenabízí
- Frustrace s Gmail API: Přetečení zásobníku má 4 847 otázek označených štítkem „gmail-api“ s běžnými stížnostmi na limity rychlosti a složitost
Revoluční řešení pro přeposílání e-mailů
Jsme první e-mailovou službou, která nabízí kompletní operace CRUD pro všechna e-mailová data prostřednictvím jednotného REST API.
Toto není jen další odesílací API. Toto je kompletní programová kontrola nad:
- Zprávy: Vytváření, čtení, aktualizace, mazání, vyhledávání, přesouvání, označování
- Složky: Plná správa složek IMAP prostřednictvím koncových bodů REST
- Kontakty: Ukládání a synchronizace kontaktů CardDAV
- Kalendáře: Události a plánování kalendáře CalDAV
Proč jsme toto postavili
Problém: Každý poskytovatel e-mailových služeb zachází s e-mailem jako s černou skříňkou. Můžete posílat e-maily, možná je i číst pomocí komplexního OAuth, ale nemůžete svá e-mailová data skutečně spravovat programově.
Naše vize: Integrace e-mailu by měla být stejně snadná jako u jakéhokoli moderního API. Žádné knihovny IMAP. Žádná složitost OAuth. Žádné noční můry s omezením rychlosti. Jen jednoduché REST endpointy, které fungují.
Výsledek: První e-mailová služba, kde si můžete vytvořit kompletního e-mailového klienta, integraci CRM nebo automatizační systém pouze s využitím HTTP požadavků.
Jednoduché ověřování
Žádný Složitost OAuth. Žádný hesla pro konkrétní aplikace. Pouze vaše přihlašovací údaje k aliasu:
curl -u "alias@yourdomain.com:password" \
https://api.forwardemail.net/v1/messages
20 koncových bodů, které změní všechno
Zprávy (5 koncových bodů)
GET /v1/messages
- Zobrazit zprávy s filtrováním (?folder=
,?is_unread=
,?is_flagged=
)POST /v1/messages
- Odeslat nové zprávy přímo do složekGET /v1/messages/:id
- Načíst konkrétní zprávu s kompletními metadatyPUT /v1/messages/:id
- Aktualizovat zprávu (příznaky, složka, stav přečtení)DELETE /v1/messages/:id
- Trvale smazat zprávu
Složky (5 koncových bodů)
GET /v1/folders
- Zobrazit všechny složky se stavem odběruPOST /v1/folders
- Vytvořit novou složku s vlastními vlastnostmiGET /v1/folders/:id
- Zobrazit podrobnosti o složce a počet zprávPUT /v1/folders/:id
- Aktualizovat vlastnosti složky a odběrDELETE /v1/folders/:id
- Smazat složku a opravit přemístění zpráv
Kontakty (5 koncových bodů)
GET /v1/contacts
- Zobrazit kontakty s vyhledáváním a stránkovánímPOST /v1/contacts
- Vytvořit nový kontakt s plnou podporou vCardGET /v1/contacts/:id
- Načíst kontakt se všemi poli a metadatyPUT /v1/contacts/:id
- Aktualizovat kontaktní informace s ověřením ETagDELETE /v1/contacts/:id
- Smazat kontakt s kaskádovým zpracováním
Kalendáře (5 koncových bodů)
GET /v1/calendars
- Zobrazit události v kalendáři s filtrováním dataPOST /v1/calendars
- Vytvořit událost v kalendáři s účastníky a opakovánímGET /v1/calendars/:id
- Získání podrobností o události s úpravou časového pásmaPUT /v1/calendars/:id
- Aktualizace události s detekcí konfliktůDELETE /v1/calendars/:id
- Smazání události s oznámeními účastníkům
Rozšířené vyhledávání: Žádná jiná služba neporovnává
Forward Email je jediná e-mailová služba, která nabízí komplexní, programatické vyhledávání ve všech polích zprávy prostřednictvím REST API.
Zatímco ostatní poskytovatelé nabízejí nanejvýš základní filtrování, my jsme vytvořili nejpokročilejší API pro vyhledávání e-mailů, jaké kdy bylo vytvořeno. Žádné API Gmailu, API Outlooku ani žádná jiná služba se našim vyhledávacím možnostem ani zdaleka neblíží.
Rozhraní Vyhledávacího API je nefunkční
Omezení vyhledávání v Gmail API:
- ✅ Pouze základní parametr
q
- ❌ Žádné vyhledávání podle konkrétního pole
- ❌ Žádné filtrování podle rozsahu dat
- ❌ Žádné filtrování podle velikosti
- ❌ Žádné filtrování příloh
- ❌ Omezeno na syntaxi vyhledávání Gmailu
Omezení vyhledávání v Outlook API:
- ✅ Základní parametr
$search
- ❌ Žádné pokročilé cílení na pole
- ❌ Žádné složité kombinace dotazů
- ❌ Agresivní omezení rychlosti
- ❌ Vyžaduje se složitá syntaxe OData
Apple iCloud:
- ❌ Žádné API
- ❌ Vyhledávání pouze přes IMAP (pokud se vám to podaří zprovoznit)
ProtonMail a Tuta:
- ❌ Žádná veřejná API
- ❌ Žádné funkce programového vyhledávání
Revoluční vyhledávací API pro přeposílání e-mailů
Nabízíme více než 15 vyhledávacích parametrů, které žádná jiná služba nenabízí:
Vyhledávací funkce | Přeposlat e-mail | API Gmailu | API pro Outlook | Ostatní |
---|---|---|---|---|
Vyhledávání podle konkrétního pole | ✅ Předmět, tělo, odesílatel, komu, kopie, záhlaví | ❌ | ❌ | ❌ |
Víceoborové obecné vyhledávání | ✅ ?search= ve všech polích |
✅ Základní q= |
✅ Základní $search= |
❌ |
Filtrování podle rozsahu dat | ✅ ?since= & ?before= |
❌ | ❌ | ❌ |
Filtrování podle velikosti | ✅ ?min_size= & ?max_size= |
❌ | ❌ | ❌ |
Filtrování příloh | ✅ ?has_attachments=true/false |
❌ | ❌ | ❌ |
Vyhledávání v záhlaví | ✅ ?headers=X-Priority |
❌ | ❌ | ❌ |
Vyhledávání ID zprávy | ✅ ?message_id=abc123 |
❌ | ❌ | ❌ |
Kombinované filtry | ✅ Více parametrů s logickým operátorem AND | ❌ | ❌ | ❌ |
Nerozlišuje velká a malá písmena | ✅ Všechna vyhledávání | ✅ | ✅ | ❌ |
Podpora stránkování | ✅ Funguje se všemi parametry vyhledávání | ✅ | ✅ | ❌ |
Příklady vyhledávání v reálném světě
Najít všechny faktury z minulého čtvrtletí:
# Forward Email - Simple and powerful
GET /v1/messages?subject=invoice&since=2024-01-01T00:00:00Z&before=2024-04-01T00:00:00Z
# Gmail API - Impossible with their limited search
# No date range filtering available
# Outlook API - Complex OData syntax, limited functionality
GET /me/messages?$search="invoice"&$filter=receivedDateTime ge 2024-01-01T00:00:00Z
Hledat velké přílohy od konkrétního odesílatele:
# Forward Email - Comprehensive filtering
GET /v1/messages?from=finance@company.com&has_attachments=true&min_size=1000000
# Gmail API - Cannot filter by size or attachments programmatically
# Outlook API - No size filtering available
# Others - No APIs available
Komplexní vyhledávání ve více polích:
# Forward Email - Advanced query capabilities
GET /v1/messages?body=quarterly&from=manager&is_flagged=true&folder=Reports
# Gmail API - Limited to basic text search only
GET /gmail/v1/users/me/messages?q=quarterly
# Outlook API - Basic search without field targeting
GET /me/messages?$search="quarterly"
Výhody výkonu
Výkon vyhledávání přeposílaných e-mailů:
- ⚡ Doba odezvy pod 100 ms pro komplexní vyhledávání
- 🔍 Optimalizace regulárních výrazů se správným indexováním
- 📊 Paralelní provádění dotazů pro počet a data
- 💾 Efektivní využití paměti s optimalizovanými dotazy
Problémy s výkonem konkurence:
- 🐌 Gmail API: Rychlost omezena na 250 kvótových jednotek na uživatele za sekundu
- 🐌 Outlook API: Agresivní omezování s komplexními požadavky na omezení přístupu
- 🐌 Ostatní: Žádná API pro porovnání
Funkce vyhledávání, které nikdo jiný nemá
1. Vyhledávání specifické pro záhlaví
# Find messages with specific headers
GET /v1/messages?headers=X-Priority:1
GET /v1/messages?headers=X-Spam-Score
2. Inteligence založená na velikosti
# Find newsletter emails (typically large)
GET /v1/messages?min_size=50000&from=newsletter
# Find quick replies (typically small)
GET /v1/messages?max_size=1000&to=support
3. Pracovní postupy založené na přílohách
# Find all documents sent to legal team
GET /v1/messages?to=legal&has_attachments=true&body=contract
# Find emails without attachments for cleanup
GET /v1/messages?has_attachments=false&before=2023-01-01T00:00:00Z
4. Kombinovaná obchodní logika
# Find urgent flagged messages from VIPs with attachments
GET /v1/messages?is_flagged=true&from=ceo&has_attachments=true&subject=urgent
Proč je to pro vývojáře důležité
Vytvářejte aplikace, které dříve nebyly možné:
- Pokročilá analýza e-mailů: Analyzujte vzorce e-mailů podle velikosti, odesílatele a obsahu
- Inteligentní správa e-mailů: Automatická organizace na základě komplexních kritérií
- Dodržování předpisů a vyhledávání: Vyhledávání konkrétních e-mailů pro splnění právních požadavků
- Business Intelligence: Získávání poznatků ze vzorců e-mailové komunikace
- Automatizované pracovní postupy: Spouštění akcí na základě sofistikovaných filtrů e-mailů
Technická implementace
Naše vyhledávací API používá:
- Optimalizace regulárních výrazů se správnými strategiemi indexování
- Paralelní provádění pro výkon
- Ověřování vstupu pro bezpečnost
- Komplexní ošetření chyb pro spolehlivost
// Example: Complex search implementation
const searchConditions = [];
if (ctx.query.subject) {
searchConditions.push({
subject: { $regex: ctx.query.subject, $options: 'i' }
});
}
if (ctx.query.from) {
searchConditions.push({
$or: [
{ 'from.address': { $regex: ctx.query.from, $options: 'i' } },
{ 'from.name': { $regex: ctx.query.from, $options: 'i' } }
]
});
}
// Combine with AND logic
if (searchConditions.length > 0) {
query.$and = searchConditions;
}
Tip
Výhoda pro vývojáře: S vyhledávacím API služby Forward Email můžete vytvářet e-mailové aplikace, které svou funkčností konkurují desktopovým klientům, a zároveň si zachovávají jednoduchost rozhraní REST API.
Architektura s bleskově rychlým výkonem
Náš technický stack je postaven na rychlosti a spolehlivosti:
Srovnávací kritéria výkonu
Proč jsme bleskově rychlí:
Komponent | Technologie | Výhoda výkonu |
---|---|---|
Skladování | NVMe SSD | 10x rychlejší než tradiční SATA |
Databáze | SQLite + msgpackr | Nulová latence sítě, optimalizovaná serializace |
Železářské zboží | AMD Ryzen holý kov | Žádné režijní náklady na virtualizaci |
Ukládání do mezipaměti | V paměti + perzistentní | Doby odezvy v řádu milisekund |
Zálohy | Cloudflare R2 šifrováno | Spolehlivost na podnikové úrovni |
Skutečná výkonnostní čísla:
- Doba odezvy API: < 50 ms průměr
- Načítání zpráv: < 10 ms pro zprávy uložené v mezipaměti
- Operace se složkami: < 5 ms pro operace s metadaty
- Synchronizace kontaktů: více než 1000 kontaktů/sekundu
- Provozní doba: 99,99% SLA s redundantní infrastrukturou
Architektura zaměřená na ochranu soukromí
Design s nulovými znalostmi: Přístup máte pouze vy s heslem IMAP – my nemůžeme číst vaše e-maily. Náš architektura s nulovými znalostmi zajišťuje naprosté soukromí a zároveň poskytuje skvělý výkon.
Proč jsme jiní: Kompletní srovnání
Omezení hlavních poskytovatelů
Výhody přeposílání e-mailů
Funkce | Přeposlat e-mail | Soutěž |
---|---|---|
Kompletní CRUD | ✅ Úplné vytváření, čtení, aktualizace a mazání všech dat | ❌ Operace pouze pro čtení nebo omezené operace |
Sjednocené API | ✅ Zprávy, složky, kontakty, kalendáře v jednom API | ❌ Samostatná API nebo chybějící funkce |
Jednoduché ověření | ✅ Základní ověřování s aliasovými přihlašovacími údaji | ❌ Komplexní OAuth s více obory |
Žádné limity sazeb | ✅ Velkorysé limity navržené pro reálné aplikace | ❌ Omezující kvóty, které narušují pracovní postupy |
Vlastní hosting | ✅ Complete self-hosting option | ❌ Pouze vázání na dodavatele |
Soukromí | ✅ Bez znalostí, šifrované, soukromé | ❌ Těžba dat a obavy o soukromí |
Výkon | ✅ Odezva pod 50 ms, úložiště NVMe | ❌ Latence sítě, zpoždění způsobená omezením |
Problém transparentnosti open-source
ProtonMail a Tuta se propagují jako „open source“ a „transparentní“, ale jedná se o zavádějící marketing, který porušuje moderní zásady ochrany osobních údajů.
Warning
Nepravdivá tvrzení o transparentnosti: ProtonMail i Tuta prominentně propagují své „open source“ certifikace, zatímco svůj nejdůležitější kód na straně serveru uchovávají proprietární a důvěrný.
Podvod ProtonMailu:
- Tvrzení: „Jsme open source“ prominentně uvedeno v marketingu
- Realita: Kód serveru je zcela proprietární - pouze klientské aplikace jsou open source
- Dopad: Uživatelé nemohou ověřit šifrování na straně serveru, zpracování dat ani tvrzení o porušení soukromí
- Porušení transparentnosti: Neexistuje způsob, jak auditovat skutečné systémy zpracování a ukládání e-mailů
Tutův zavádějící marketing:
- Tvrzení: „E-mail s otevřeným zdrojovým kódem“ jako klíčový prodejní argument
- Realita: Backendová infrastruktura je uzavřeného zdrojového kódu - k dispozici je pouze frontend
- Dopad: Proprietární šifrování brání standardním e-mailovým protokolům (IMAP/SMTP)
- Strategie uzamčení: Vlastní šifrování vynucuje závislost na dodavateli
Proč je to důležité pro moderní soukromí:
V roce 2025 vyžaduje skutečné soukromí úplnou transparentnost. Když poskytovatelé e-mailů tvrdí, že mají „otevřený zdrojový kód“, ale skrývají kód svého serveru:
- Neověřitelné šifrování: Nemůžete auditovat, jak jsou vaše data skutečně šifrována.
- Skryté postupy pro práci se daty: Zpracování dat na straně serveru zůstává černou skříňkou.
- Zabezpečení založené na důvěře: Musíte důvěřovat jejich tvrzením bez ověření.
- Uzamčení dodavatele: Proprietární systémy brání přenositelnosti dat.
Skutečná transparentnost přeposílaných e-mailů:
- ✅ Kompletní open source - kód serveru a klienta
- ✅ Možnost vlastního hostingu - spuštění vlastní instance
- ✅ Standardní protokoly - kompatibilita s IMAP, SMTP, CardDAV, CalDAV
- ✅ Auditovatelné zabezpečení - každý řádek kódu lze zkontrolovat
- ✅ Žádná vazba na dodavatele - vaše data, vaše kontrola
Tip
Skutečně otevřený zdrojový kód znamená, že si můžete ověřit každé tvrzení. S Forward Email můžete auditovat naše šifrování, kontrolovat, jak nakládáme s daty, a dokonce i spustit vlastní instanci. To je skutečná transparentnost.
Více než 30 příkladů integrace z reálného světa
1. Vylepšení kontaktního formuláře WordPressu
Problém: Chyby konfigurace SMTP ve WordPressu (631 problémů s GitHubem) Řešení: Přímá integrace API zcela obchází SMTP
// WordPress contact form that saves to Sent folder
await fetch('https://api.forwardemail.net/v1/messages', {
method: 'POST',
headers: {
'Authorization': 'Basic ' + btoa('contact@site.com:password'),
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: [{ address: 'owner@site.com' }],
subject: 'Contact Form: ' + formData.subject,
text: formData.message,
folder: 'Sent'
})
});
2. Alternativa k Zapieru pro automatizaci e-mailů
Problém: Limit 10 e-mailů za hodinu od Zapieru a Chyby detekce IMAP Řešení: Neomezená automatizace s plnou kontrolou e-mailů
// Auto-organize emails by sender domain
const messages = await fetch('/v1/messages?folder=INBOX');
for (const message of messages) {
const domain = message.from.split('@')[1];
await fetch(`/v1/messages/${message.id}`, {
method: 'PUT',
body: JSON.stringify({ folder: `Clients/${domain}` })
});
}
3. Synchronizace e-mailů CRM
Problém: Ruční správa kontaktů mezi e-mailem a CRM systémy Řešení: Obousměrná synchronizace s rozhraním API pro kontakty CardDAV
// Sync new email contacts to CRM
const newContacts = await fetch('/v1/contacts');
for (const contact of newContacts) {
await crmAPI.createContact({
name: contact.name,
email: contact.email,
source: 'email_api'
});
}
4. Zpracování objednávek elektronického obchodu
Problém: Ruční zpracování e-mailů s objednávkami pro platformy elektronického obchodování Řešení: Automatizovaný proces správy objednávek
// Process order confirmation emails
const orders = await fetch('/v1/messages?folder=Orders');
const orderEmails = orders.filter(msg =>
msg.subject.includes('Order Confirmation')
);
for (const order of orderEmails) {
const orderData = parseOrderEmail(order.text);
await updateInventory(orderData);
await fetch(`/v1/messages/${order.id}`, {
method: 'PUT',
body: JSON.stringify({ folder: 'Orders/Processed' })
});
}
5. Integrace tiketů podpory
Problém: Vlákna e-mailů roztroušena v platformy helpdesku Řešení: Dokončete sledování vláken e-mailů
// Create support ticket from email thread
const messages = await fetch('/v1/messages?folder=Support');
const supportEmails = messages.filter(msg =>
msg.to.some(addr => addr.includes('support@'))
);
for (const email of supportEmails) {
const ticket = await supportSystem.createTicket({
subject: email.subject,
from: email.from,
body: email.text,
timestamp: email.date
});
}
6. Systém pro správu newsletterů
Problém: Omezené integrace platforma pro newslettery Řešení: Kompletní správa životního cyklu předplatitele
// Auto-manage newsletter subscriptions
const messages = await fetch('/v1/messages?folder=Newsletter');
const unsubscribes = messages.filter(msg =>
msg.subject.toLowerCase().includes('unsubscribe')
);
for (const msg of unsubscribes) {
await removeSubscriber(msg.from);
await fetch(`/v1/messages/${msg.id}`, {
method: 'PUT',
body: JSON.stringify({ folder: 'Newsletter/Unsubscribed' })
});
}
7. Správa úkolů na základě e-mailu
Problém: Zahlcení doručené pošty a sledování úkolů Řešení: Převeďte e-maily na úkoly, které lze provést
// Create tasks from flagged emails
const messages = await fetch('/v1/messages?is_flagged=true');
for (const email of messages) {
await taskManager.createTask({
title: email.subject,
description: email.text,
assignee: email.to[0].address,
dueDate: extractDueDate(email.text)
});
}
8. Agregace e-mailů z více účtů
Problém: Správa více e-mailových účtů napříč poskytovateli Řešení: Sjednocené rozhraní doručené pošty
// Aggregate emails from multiple accounts
const accounts = ['work@domain.com', 'personal@domain.com'];
const allMessages = [];
for (const account of accounts) {
const messages = await fetch('/v1/messages', {
headers: { 'Authorization': getAuth(account) }
});
allMessages.push(...messages.map(m => ({ ...m, account })));
}
9. Panel pokročilé analýzy e-mailů
Problém: Žádné informace o vzory e-mailů s propracovaným filtrováním Řešení: Vlastní analýza e-mailů s využitím pokročilých vyhledávacích funkcí
// Generate comprehensive email analytics using advanced search
const analytics = {};
// Analyze email volume by sender domain
const messages = await fetch('/v1/messages');
analytics.senderDomains = analyzeSenderDomains(messages);
// Find large attachments consuming storage
const largeAttachments = await fetch('/v1/messages?has_attachments=true&min_size=1000000');
analytics.storageHogs = largeAttachments.map(msg => ({
subject: msg.subject,
from: msg.from,
size: msg.size
}));
// Analyze communication patterns with VIPs
const vipEmails = await fetch('/v1/messages?from=ceo@company.com');
const urgentVipEmails = await fetch('/v1/messages?from=ceo@company.com&subject=urgent');
analytics.vipCommunication = {
total: vipEmails.length,
urgent: urgentVipEmails.length,
urgencyRate: (urgentVipEmails.length / vipEmails.length) * 100
};
// Find unread emails by date range for follow-up
const lastWeek = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
const unreadRecent = await fetch(`/v1/messages?is_unread=true&since=${lastWeek}`);
analytics.followUpNeeded = unreadRecent.length;
// Analyze email sizes for optimization
const smallEmails = await fetch('/v1/messages?max_size=1000');
const mediumEmails = await fetch('/v1/messages?min_size=1000&max_size=50000');
const largeEmails = await fetch('/v1/messages?min_size=50000');
analytics.sizeDistribution = {
small: smallEmails.length,
medium: mediumEmails.length,
large: largeEmails.length
};
// Search for compliance-related emails
const complianceEmails = await fetch('/v1/messages?body=confidential&has_attachments=true');
analytics.complianceReview = complianceEmails.length;
10. Inteligentní archivace e-mailů
Problém: Ruční organizace e-mailů Řešení: Inteligentní kategorizace e-mailů
// Auto-archive old emails by category
const messages = await fetch('/v1/messages');
const oldEmails = messages.filter(email =>
isOlderThan(email.date, 90) // 90 days
);
for (const email of oldEmails) {
const category = categorizeEmail(email);
await fetch(`/v1/messages/${email.id}`, {
method: 'PUT',
body: JSON.stringify({ folder: `Archive/${category}` })
});
}
11. Integrace e-mailu s kalendářem
Problém: Ruční vytváření událost v kalendáři z e-mailů Řešení: Automatická extrakce a vytváření událostí
// Extract meeting details from emails
const messages = await fetch('/v1/messages?folder=Meetings');
const meetingEmails = messages.filter(email =>
email.subject.toLowerCase().includes('meeting')
);
for (const email of meetingEmails) {
const meetingData = extractMeetingInfo(email.text);
if (meetingData.date && meetingData.time) {
await fetch('/v1/calendars', {
method: 'POST',
body: JSON.stringify({
title: email.subject,
start: meetingData.datetime,
attendees: [email.from, ...email.to]
})
});
}
}
12. Zálohování a dodržování předpisů pro e-maily
Problém: Uchovávání e-mailů a požadavky na shodu s předpisy Řešení: Automatizované zálohování s uchováním metadat
// Backup emails with full metadata
const allMessages = await fetch('/v1/messages');
const backup = {
timestamp: new Date(),
messages: allMessages.map(msg => ({
id: msg.id,
subject: msg.subject,
from: msg.from,
to: msg.to,
date: msg.date,
flags: msg.flags
}))
};
await saveToComplianceStorage(backup);
13. Správa obsahu na základě e-mailů
Problém: Správa obsahu odesílaného e-mailem pro CMS platformy Řešení: E-mail jako systém pro správu obsahu
// Process content submissions from email
const messages = await fetch('/v1/messages?folder=Submissions');
const submissions = messages.filter(msg =>
msg.to.some(addr => addr.includes('submit@'))
);
for (const submission of submissions) {
const content = parseSubmission(submission.text);
await cms.createDraft({
title: submission.subject,
content: content.body,
author: submission.from
});
}
14. Správa šablon e-mailů
Problém: Nekonzistentní šablony e-mailů v rámci týmu Řešení: Centralizovaný systém šablon s API
// Send templated emails with dynamic content
const template = await getEmailTemplate('welcome');
await fetch('/v1/messages', {
method: 'POST',
body: JSON.stringify({
to: [{ address: newUser.email }],
subject: template.subject.replace('{{name}}', newUser.name),
html: template.html.replace('{{name}}', newUser.name),
folder: 'Sent'
})
});
15. Automatizace pracovních postupů založená na e-mailech
Problém: Ruční nastavení schvalovací procesy e-mailem Řešení: Automatizované spouštěče pracovního postupu
// Process approval emails
const messages = await fetch('/v1/messages?folder=Approvals');
const approvals = messages.filter(msg =>
msg.subject.includes('APPROVAL')
);
for (const approval of approvals) {
const decision = parseApprovalDecision(approval.text);
await workflow.processApproval({
requestId: extractRequestId(approval.subject),
decision: decision,
approver: approval.from
});
}
16. Monitorování zabezpečení e-mailu
Problém: Ruční detekce bezpečnostních hrozeb Řešení: Automatizovaná analýza hrozeb
// Monitor for suspicious emails
const recentEmails = await fetch('/v1/messages');
for (const email of recentEmails) {
const threatScore = analyzeThreat(email);
if (threatScore > 0.8) {
await fetch(`/v1/messages/${email.id}`, {
method: 'PUT',
body: JSON.stringify({ folder: 'Security/Quarantine' })
});
await alertSecurityTeam(email);
}
}
17. Sbírka průzkumů založená na e-mailech
Problém: Ruční zpracování odpověď na průzkum Řešení: Automatická agregace odpovědí
// Collect and process survey responses
const messages = await fetch('/v1/messages?folder=Surveys');
const responses = messages.filter(msg =>
msg.subject.includes('Survey Response')
);
const surveyData = responses.map(email => ({
respondent: email.from,
responses: parseSurveyData(email.text),
timestamp: email.date
}));
await updateSurveyResults(surveyData);
18. Monitorování výkonu e-mailů
Problém: Žádný přehled o výkon doručování e-mailů Řešení: Metriky e-mailů v reálném čase
// Monitor email delivery performance
const sentEmails = await fetch('/v1/messages?folder=Sent');
const deliveryStats = {
sent: sentEmails.length,
bounces: await countBounces(),
deliveryRate: calculateDeliveryRate()
};
await updateDashboard(deliveryStats);
19. Kvalifikace potenciálního zákazníka na základě e-mailu
Problém: Ruční nastavení bodování vedení z e-mailových interakcí Řešení: Automatizovaný proces kvalifikace potenciálních zákazníků
// Score leads based on email engagement
const prospects = await fetch('/v1/contacts');
for (const prospect of prospects) {
const messages = await fetch('/v1/messages');
const emails = messages.filter(msg =>
msg.from.includes(prospect.email)
);
const score = calculateEngagementScore(emails);
await crm.updateLeadScore(prospect.id, score);
}
20. Řízení projektů prostřednictvím e-mailu
Problém: Aktualizace projektu rozptýlený v různých e-mailových vláknech Řešení: Centralizované komunikační centrum projektu
// Extract project updates from emails
const messages = await fetch('/v1/messages?folder=Projects');
const projectEmails = messages.filter(msg =>
msg.subject.includes('Project Update')
);
for (const email of projectEmails) {
const update = parseProjectUpdate(email.text);
await projectManager.addUpdate({
project: update.projectId,
author: email.from,
content: update.content
});
}
21. Správa zásob na základě e-mailů
Problém: Ruční aktualizace zásob z e-mailů od dodavatelů Řešení: Automatické sledování zásob z e-mailových oznámení
// Process inventory updates from supplier emails
const messages = await fetch('/v1/messages?folder=Suppliers');
const inventoryEmails = messages.filter(msg =>
msg.subject.includes('Inventory Update') || msg.subject.includes('Stock Alert')
);
for (const email of inventoryEmails) {
const inventoryData = parseInventoryUpdate(email.text);
await inventory.updateStock({
sku: inventoryData.sku,
quantity: inventoryData.quantity,
supplier: email.from,
timestamp: email.date
});
// Move to processed folder
await fetch(`/v1/messages/${email.id}`, {
method: 'PUT',
body: JSON.stringify({ folder: 'Suppliers/Processed' })
});
}
22. Zpracování faktur na základě e-mailu
Problém: Ruční integrace zpracování faktur a účetnictví Řešení: Automatická extrakce faktur a synchronizace účetního systému
// Extract invoice data from email attachments
const messages = await fetch('/v1/messages?folder=Invoices');
const invoiceEmails = messages.filter(msg =>
msg.subject.toLowerCase().includes('invoice') && msg.attachments.length > 0
);
for (const email of invoiceEmails) {
const invoiceData = await extractInvoiceData(email.attachments[0]);
await accounting.createInvoice({
vendor: email.from,
amount: invoiceData.total,
dueDate: invoiceData.dueDate,
items: invoiceData.lineItems
});
// Flag as processed
await fetch(`/v1/messages/${email.id}`, {
method: 'PUT',
body: JSON.stringify({ flags: ['\\Seen', '\\Flagged'] })
});
}
23. Registrace na akci prostřednictvím e-mailu
Problém: Ruční zpracování registrace na akci z e-mailových odpovědí Řešení: Automatizovaná správa účastníků a integrace kalendáře
// Process event registration emails
const messages = await fetch('/v1/messages?folder=Events');
const registrations = messages.filter(msg =>
msg.subject.includes('Registration') || msg.subject.includes('RSVP')
);
for (const registration of registrations) {
const attendeeData = parseRegistration(registration.text);
// Add to attendee list
await events.addAttendee({
event: attendeeData.eventId,
name: attendeeData.name,
email: registration.from,
dietary: attendeeData.dietaryRestrictions
});
// Create calendar event for attendee
await fetch('/v1/calendars', {
method: 'POST',
body: JSON.stringify({
title: attendeeData.eventName,
start: attendeeData.eventDate,
attendees: [registration.from]
})
});
}
24. Pracovní postup schvalování dokumentů na základě e-mailu
Problém: Složité řetězce schválení dokumentu prostřednictvím e-mailu Řešení: Automatizované sledování schvalování a verzování dokumentů
// Track document approval workflow
const messages = await fetch('/v1/messages?folder=Approvals');
const approvalEmails = messages.filter(msg =>
msg.subject.includes('Document Approval')
);
for (const email of approvalEmails) {
const approval = parseApprovalEmail(email.text);
await documentSystem.updateApproval({
documentId: approval.documentId,
approver: email.from,
status: approval.decision, // 'approved', 'rejected', 'needs_changes'
comments: approval.comments,
timestamp: email.date
});
// Check if all approvals complete
const document = await documentSystem.getDocument(approval.documentId);
if (document.allApprovalsComplete) {
await documentSystem.finalizeDocument(approval.documentId);
}
}
25. Analýza zpětné vazby od zákazníků na základě e-mailu
Problém: Ruční sběr zpětná vazba od zákazníků a analýza sentimentu Řešení: Automatizované zpracování zpětné vazby a sledování sentimentu
// Analyze customer feedback from emails
const messages = await fetch('/v1/messages?folder=Feedback');
const feedbackEmails = messages.filter(msg =>
msg.to.some(addr => addr.includes('feedback@'))
);
for (const email of feedbackEmails) {
const sentiment = await analyzeSentiment(email.text);
const category = categorizeFeeback(email.text);
await feedback.recordFeedback({
customer: email.from,
content: email.text,
sentiment: sentiment.score, // -1 to 1
category: category, // 'bug', 'feature', 'complaint', 'praise'
priority: calculatePriority(sentiment, category),
timestamp: email.date
});
// Auto-escalate negative feedback
if (sentiment.score < -0.5) {
await escalateToSupport(email);
}
}
26. Náborový proces založený na e-mailech
Problém: Manuální nábor a sledování kandidátů Řešení: Automatizovaná správa kandidátů a plánování pohovorů
// Process job application emails
const messages = await fetch('/v1/messages?folder=Careers');
const applications = messages.filter(msg =>
msg.subject.toLowerCase().includes('application') && msg.attachments.length > 0
);
for (const application of applications) {
const resume = await parseResume(application.attachments[0]);
const candidate = await ats.createCandidate({
name: resume.name,
email: application.from,
skills: resume.skills,
experience: resume.experience,
position: extractPosition(application.subject)
});
// Auto-schedule screening if qualified
if (candidate.qualificationScore > 0.7) {
await calendar.scheduleInterview({
candidateId: candidate.id,
type: 'phone_screening',
duration: 30
});
}
}
27. Zpracování e-mailových výkazů výdajů
Problém: Ruční odeslání a schválení výkaz výdajů Řešení: Automatizovaný pracovní postup extrakce a schvalování výdajů
// Process expense report emails
const messages = await fetch('/v1/messages?folder=Expenses');
const expenseEmails = messages.filter(msg =>
msg.subject.includes('Expense') && msg.attachments.length > 0
);
for (const email of expenseEmails) {
const receipts = await processReceipts(email.attachments);
const expenseReport = await expenses.createReport({
employee: email.from,
expenses: receipts.map(receipt => ({
amount: receipt.total,
category: receipt.category,
date: receipt.date,
merchant: receipt.merchant
})),
totalAmount: receipts.reduce((sum, r) => sum + r.total, 0)
});
// Auto-approve small amounts
if (expenseReport.totalAmount < 100) {
await expenses.approve(expenseReport.id);
} else {
await expenses.sendForApproval(expenseReport.id);
}
}
28. Zprávy o zajištění kvality na základě e-mailu
Problém: Manuální sledování problémů zajištění kvality Řešení: Automatizovaná správa problémů s QA a sledování chyb
// Process QA bug reports from email
const messages = await fetch('/v1/messages?folder=QA');
const bugReports = messages.filter(msg =>
msg.subject.includes('Bug Report') || msg.subject.includes('QA Issue')
);
for (const report of bugReports) {
const bugData = parseBugReport(report.text);
const ticket = await bugTracker.createIssue({
title: report.subject,
description: bugData.description,
severity: bugData.severity,
steps: bugData.stepsToReproduce,
reporter: report.from,
attachments: report.attachments
});
// Auto-assign based on component
const assignee = await getComponentOwner(bugData.component);
await bugTracker.assign(ticket.id, assignee);
// Create calendar reminder for follow-up
await fetch('/v1/calendars', {
method: 'POST',
body: JSON.stringify({
title: `Follow up on ${ticket.id}`,
start: addDays(new Date(), 3),
attendees: [assignee]
})
});
}
29. Správa dodavatelů na základě e-mailu
Problém: Manuální komunikace s dodavateli a sledování smluv Řešení: Automatizovaná správa vztahů s dodavateli
// Track vendor communications and contracts
const messages = await fetch('/v1/messages?folder=Vendors');
const vendorEmails = messages.filter(msg =>
isVendorEmail(msg.from)
);
for (const email of vendorEmails) {
const vendor = await vendors.getByEmail(email.from);
// Log communication
await vendors.logCommunication({
vendorId: vendor.id,
type: 'email',
subject: email.subject,
content: email.text,
timestamp: email.date
});
// Check for contract-related keywords
if (email.text.includes('contract') || email.text.includes('renewal')) {
await vendors.flagForContractReview({
vendorId: vendor.id,
emailId: email.id,
priority: 'high'
});
// Create task for procurement team
await tasks.create({
title: `Review contract communication from ${vendor.name}`,
assignee: 'procurement@company.com',
dueDate: addDays(new Date(), 2)
});
}
}
30. Monitorování sociálních médií prostřednictvím e-mailů
Problém: Ruční sledování zmínek sociální média a reakce Řešení: Automatizované zpracování upozornění na sociálních sítích a koordinace reakcí
// Process social media alerts from email notifications
const messages = await fetch('/v1/messages?folder=Social');
const socialAlerts = messages.filter(msg =>
msg.from.includes('alerts@') || msg.subject.includes('Social Mention')
);
for (const alert of socialAlerts) {
const mention = parseSocialMention(alert.text);
await socialMedia.recordMention({
platform: mention.platform,
author: mention.author,
content: mention.content,
sentiment: mention.sentiment,
reach: mention.followerCount,
url: mention.url
});
// Auto-escalate negative mentions with high reach
if (mention.sentiment < -0.5 && mention.followerCount > 10000) {
await socialMedia.escalateToTeam({
mentionId: mention.id,
priority: 'urgent',
assignee: 'social-media-manager@company.com'
});
// Create calendar reminder for immediate response
await fetch('/v1/calendars', {
method: 'POST',
body: JSON.stringify({
title: `Urgent: Respond to negative social mention`,
start: addMinutes(new Date(), 30),
attendees: ['social-media-manager@company.com']
})
});
}
}
Začínáme
1. Vytvořte si účet pro přesměrování e-mailů
Zaregistrujte se na adrese forwardemail.net a ověřte svou doménu.
2. Generování přihlašovacích údajů API
Váš alias e-mail a heslo slouží jako přihlašovací údaje API – není nutné žádné další nastavení.
3. Proveďte první volání API
# List your messages
curl -u "your-alias@domain.com:password" \
https://api.forwardemail.net/v1/messages
# Create a new contact
curl -u "your-alias@domain.com:password" \
-X POST \
-H "Content-Type: application/json" \
-d '{"fullName":"John Doe","emails":[{"value":"john@example.com"}]}' \
https://api.forwardemail.net/v1/contacts
4. Prozkoumejte dokumentaci
Kompletní dokumentaci k API s interaktivními příklady naleznete na stránce forwardemail.net/en/email-api.
Technické zdroje
- Kompletní dokumentace API - Interaktivní specifikace OpenAPI 3.0
- Průvodce vlastním hostingem - Nasazení přeposílání e-mailů ve vaší infrastruktuře
- Bezpečnostní bílá kniha - Technická architektura a podrobnosti o zabezpečení
- Repozitář GitHubu - Kódová základna s otevřeným zdrojovým kódem
- Podpora pro vývojáře - Přímý přístup k našemu technickému týmu
Jste připraveni na revoluci v integraci e-mailů? Začněte vytvářet s API Forward Email ještě dnes a vyzkoušejte první kompletní platformu pro správu e-mailů určenou pro vývojáře.
Přeposílání e-mailů: E-mailová služba, která konečně správně zvládá API.