E-mails lezen via API: Een ontwikkelaarsgids voor Inbox Toegang
Reikwijdte Deze gids behandelt sync-API's voor het lezen van bestaande inboxen van gebruikers - Gmail API, Microsoft Graph, IMAP en uniforme lagen zoals Unipile. Dit is anders dan transactionele services (SendGrid, Mailgun) die uitgaande e-mail vanaf uw domein verzenden.
Bouw producten die gebruikersmails programmatisch lezen. Van een enkele GET /api/v1/emails oproepen naar real-time webhooks, deze gids behandelt elke aanpak met werkende code in Node.js, Python en cURL.
// E-mails lezen met één uniforme API-aanroep
const response = wacht op fetch(
'https://api3.unipile.com:POORT/api/v1/emails',
{
headers: {
'X-API-KEY': process.env.UNIPILE_API_KEY,
'account_id': accountId
}
}
);
const { e-mails } = wacht op antwoord.json();
// Dezelfde JSON-structuur voor Gmail, Outlook en IMAP
e-mails.voorElk(e-mail => {
console.log(onderwerp.email, afzender.email);
});Wat is een Read Email API?
Een read email API is een HTTP-interface waarmee je applicatie e-mails uit de bestaande mailbox van een gebruiker kan openen, ophalen en verwerken - zonder wachtwoorden op te slaan of provider-specifieke integraties te bouwen. Het is de basis van elk product dat inzicht in de inbox nodig heeft: CRM-synchronisatie, AI-e-mail copiloten, ondersteuningsautomatisering of nalevingsarchivering.
A e-mail API lezen stelt eindpunten beschikbaar om te authenticeren tegen het postvak van een gebruiker (via OAuth 2.0 of IMAP-gegevens), inboxberichten weer te geven, volledige e-mailinhoud met bijlagen op te halen en zich te abonneren op realtime bezorgingsgebeurtenissen. Het werkt met het bestaande Gmail-, Outlook- of IMAP-account van de gebruiker - niet een domein dat u beheert. Dit onderscheidt het van transactionele e-mail-API's (SendGrid, Mailgun, Resend), die uitgaande e-mail verzenden namens uw applicatie.
Maak verbinding met de bestaande inboxes van gebruikers. Lees, synchroniseer en reageer in realtime op e-mails. Authenticatie via OAuth 2.0 of IMAP. De gebruiker verleent toegang tot zijn eigen mailbox.
Verzend uitgaande e-mails vanaf een domein dat u beheert. Gebruikt voor ontvangstbewijzen, meldingen, wachtwoordherstel. Geen toegang tot de inbox.
Waarom het programmatisch lezen van e-mails ertoe doet
Het vermogen om e-mails van gebruikers via API's te lezen, opent een categorie producten die simpelweg onmogelijk waren met SMTP alleen. Hier zijn de vier belangrijkste use cases die de adoptie in 2026 stimuleren.
CRM en Sales Engagement Synchronisatie
Sales tools moeten elke e-mailthread tussen een vertegenwoordiger en een potentiële klant kunnen zien - automatisch, zonder handmatige registratie. Een API voor gelezen e-mails haalt gesprekken rechtstreeks uit de inbox van de vertegenwoordiger en synchroniseert deze in realtime met uw CRM.
AI-agenten en e-mail copiloten
Grote taalmodellen hebben context nodig. Door uw AI-agent een realtime stroom inbox-e-mails te voeren, kunt u copiloten bouwen die antwoorden opstellen, threads samenvatten, actiepunten extraheren en gesprekken automatisch prioriteren.
Klantenserviceautomatisering
Supportteams ontvangen dagelijks duizenden e-mails. Een API voor gelezen e-mails laat uw platform inkomende verzoeken classificeren, routeren naar de juiste wachtrij en geautomatiseerde antwoorden activeren - allemaal voordat een mens een ticket opent.
Compliance, Archivering en eDiscovery
Gereguleerde sectoren moeten elke e-mail bewaren en indexeren. Een API voor gelezen e-mails biedt de programmatische toegang die nodig is om postbussen continu te archiveren, beleidsovertredingen te markeren en e-mailrecords op aanvraag te produceren voor juridische beoordeling.
Native API's voor het lezen van e-mails: Gmail, Outlook en IMAP
Elke grote e-mailprovider biedt zijn eigen read API met verschillende eindpunten, authenticatiemodellen en mogelijkheden. Hier is hoe elke er in de praktijk uitziet.
Gmail API
OAuth 2.0De Gmail API is een REST API die is gebouwd bovenop de infrastructuur van Google. Het gebruikt users.messages.list om door een postvak te pagineren en gebruikers.berichten.ophalen om een volledige melding op te halen. Het ondersteunt pushmeldingen via Google Pub/Sub, waardoor real-time inboxbewaking haalbaar is zonder te pollen. Limiet: 250 quotum-eenheden per gebruiker per seconde. Opmerking: Gmail vereist OAuth 2.0 - API-sleutels werken niet voor toegang tot mailboxen. Zie Waarom Gmail API-sleutels afwijst.
# Berichten in de inbox weergeven (Gmail API)
krul -X GET \
"https://gmail.googleapis.com/gmail/v1/users/me/messages?labelIds=INBOX&maxResults=20" \
-H "Authenticatie: Bearer ACCESS_TOKEN"
# Een enkele e-mail met de volledige tekst ophalen
krul -X GET \
"https://gmail.googleapis.com/gmail/v1/users/me/messages/MESSAGE_ID?format=full" \
-H "Authenticatie: Bearer ACCESS_TOKEN"Microsoft Graph (Outlook en Microsoft 365)
OAuth 2.0Microsoft Graph is de uniforme API voor alle Microsoft 365-services, waaronder persoonlijke Outlook-accounts, Exchange Online en Microsoft 365 zakelijke e-mailaccounts. De /ik/berichten endpoint retourneert berichten met volledige body-inhoud in één verzoek. Pagina-indeling gebruikt $overslaan en $boven OData-parameters. Zie de volledige Microsoft Graph e-mailintegratiehandleiding voor meer informatie.
# Berichten in de inbox weergeven (Microsoft Graph)
krul -X GET \
""https://graph.microsoft.com/v1.0/me/messages?\$top=20&\$filter=parentFolderId eq 'inbox'"' \
-H "Authenticatie: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json"
# Eén bericht met inhoud ophalen
krul -X GET \
""https://graph.microsoft.com/v1.0/me/messages/MESSAGE_ID?\$select=subject,body,from,receivedDateTime"" \
-H "Authenticatie: Bearer ACCESS_TOKEN"$selecteer en Accepteer headers.IMAP
Universeel ProtocolIMAP (Internet Message Access Protocol) is het universele e-mailprotocol dat door vrijwel elke mailserver wordt ondersteund. Het is geen REST API, maar een stateful TCP-verbinding via poort 993 (TLS). Je geeft commando's zoals OPHALE, ZOEKen WERKELOOS over de verbinding. Voor een diepere duik, zie onze IMAP API-integratiehandleiding.
importeer imaplib, e-mail
# Verbinding maken en authenticeren
e-mail = imaplib.IMAP4_SSL('imap.example.com')
e-mail.Login('user@example.com', 'app_wachtwoord')
e-mail.select('POSTVAK')
# Zoek naar verborgen berichten
status, bericht_ids = e-mail.zoek(Niets, 'ONGEZIEN')
voor msg_id in bericht_ids[0].deel():
_, gegevens = e-mail.fetch(msg_id, '(RFC822)')
bericht = e-mail.bericht_van_bytes(gegevens[0][1])
print(bericht['onderwerp'], bericht['van'])WERKELOOS commando, dat een verbinding openhoudt en wacht op servermeldingen. Dit schaalt niet gemakkelijk voorbij enkele honderden gelijktijdige accounts.Yahoo Mail, ProtonMail, Zoho en andere providers ondersteunen IMAP allemaal als universele fallback, dus ze vallen onder de bovenstaande IMAP-aanpak. Sommige (zoals Yahoo) bieden ook beperkte eigen API's aan, maar geen enkele komt in de buurt van de mogelijkheden van de Gmail API of Microsoft Graph. Voor de meeste producten die meerdere providers ondersteunen, is IMAP de universele fallback voor elke mailbox die niet wordt gedekt door Gmail of Outlook OAuth. unificerende e-mail-API regelt deze onderhandeling automatisch.
De verborgen complexiteit van het lezen van e-mails op schaal
Het bouwen van een API-integratie voor het lezen van e-mails tegen één enkele provider voor een demo duurt een middag. Het bouwen van een betrouwbare integratie die op productieschaal werkt voor alle providers is een heel andere uitdaging. Dit is wat er engineering-technisch bij komt kijken.
OAuth-stroom per provider
Elke provider heeft zijn eigen OAuth 2.0-implementatie, vereisten voor toestemmingsschermen, scopes en tokenlevenscyclus. Het ondersteunen van Gmail en Outlook betekent het onderhouden van twee afzonderlijke OAuth-apps, twee ontwikkelaarsconsoles, twee strategieën voor het vernieuwen van tokens en twee sets nalevingsvereisten (Google CASA Tier 2, Microsoft Publisher Verification).
Paginatieverschillen
Elke provider paginereert anders. Gmail gebruikt ondoorzichtige paginatokens. Microsoft Graph gebruikt OData $overslaan en volgendeKoppeling cursors. IMAP gebruikt numerieke UID-bereiken. Het implementeren van een consistente paginatie-abstractie over alle drie vereist niet-triviale adaptercode.
MIME-parsing
E-mails komen binnen als ruwe MIME-documenten met geneste multipart-grenzen, base64- of quoted-printable-codering, meerdere tekensets en inline bijlagen. Gmail retourneert base64url-gecodeerde delen. IMAP retourneert ruwe RFC 822. Geen van beide geeft u een nette platte tekstbody zonder de volledige MIME-boom te parsen.
Limieten en uitstel
Gmail dwingt 250 quota-eenheden per gebruiker per seconde af (vermelding kost 5 eenheden, ophalen 5 eenheden). Microsoft Graph limiteert op 10.000 verzoeken per 10 minuten per app per tenant. Beide retourneren 429-fouten die een exponentiële vertraging met jitter vereisen. Bij 1.000 gekoppelde accounts wordt het beheer van de tarieflimiet een volledig technisch probleem.
Real-Time: Webhooks versus Polling versus IDLE
Je meldingen ontvangen wanneer er een nieuwe e-mail arriveert, vereist voor elke provider compleet verschillende mechanismen. Gmail gebruikt Google Pub/Sub pushabonnementen die elke 7 dagen moeten worden vernieuwd. Microsoft Graph gebruikt wijzigingsmeldingabonnementen met een maximale levensduur van 4.230 minuten. IMAP gebruikt het IDLE commando, dat een persistente TCP-verbinding per account openhoudt.
Thread inconsistenties tussen providers
Gmail groepeert berichten van nature in threads. Microsoft Graph heeft een conversatieId-veld, maar threads gedragen zich anders dan bij Gmail. IMAP heeft geen native threading; je reconstrueert threads handmatig door References en In-Reply-To headers te matchen. Het bouwen van een uniforme thread-weergave die meerdere providers ondersteunt, vereist aanzienlijke normalisatielogica.
Lees E-mail API Architectuur: 3 Benaderingen Vergeleken
Er is geen enkele "correcte" architectuur voor het lezen van e-mails. De juiste aanpak hangt af van hoeveel providers u moet ondersteunen, uw technische capaciteit en uw schaalvereisten. Hier is een eerlijke vergelijking.
| Aanpak | Voordelen | Cons | Wanneer te gebruiken |
|---|---|---|---|
| Directe provider API's Gmail API, Microsoft Graph |
Gratis niveau, volledige toegang tot functies, geen tussenliggende latentie | OAuth-instellingen per provider, MIME-parsing, afzonderlijk limietbeheer, geen normalisatie tussen providers | Alleen enkele provider |
| Zelf gehoste IMAP imaplib, node-imap |
Universeel protocol, werkt met elke mailbox, geen OAuth-app vereist | Stateful TCP-verbindingen, geen pushmeldingen (polling of IDLE), connection poolbeheer, traag op schaal | Alleen legacy / on-premise |
| Unified API voor het lezen van e-mail Unipile |
Eén eindpunt voor alle providers, genormaliseerde JSON-respons, beheerde OAuth, uniforme webhooks, ingebouwde retry-logica | Extra API-aanroepkosten per gekoppelde account, externe afhankelijkheid | Multi-provider producten |
Als elke gebruiker in uw product Gmail gebruikt, bouw dan direct tegen de Gmail API. U krijgt volledige functiepariteit, geen extra kosten en toegang tot Gmail-specifieke functies zoals labels, threads en Pub/Sub push.
On-premise mailservers, bedrijfsmatige Exchange-implementaties zonder toegang tot de Graph API, of elk scenario waarin OAuth niet beschikbaar is. Gebruik IMAP als een fallback, niet als een primaire strategie voor nieuwe producten.
Wanneer uw gebruikers Gmail, Outlook en IMAP e-mailboxen hebben en u één consistente API voor het lezen van e-mails nodig heeft voor al deze accounts, elimineert een uniforme laag zoals Unipile het N-provider integratieprobleem volledig.
E-mails lezen met de Unified Read Email API van Unipile
Unipile abstraheert de Gmail API, Microsoft Graph en IMAP achter één API voor het lezen van e-mails. Eén OAuth-stroom, één eindpunt, één genormaliseerde JSON-vorm - ongeacht op welke provider het postvak van uw gebruiker zich bevindt. Hier leest u hoe u binnen 5 minuten uw eerste inbox kunt lezen.
Genereer een gehoste authenticatielink vanuit je Unipile dashboard. Stuur deze link naar je gebruiker - zij voltooien de OAuth-goedkeuringsstroom voor hun provider (Gmail-, Outlook- of IMAP-gegevens) op de gehoste pagina van Unipile. Geen OAuth-app-setup, geen configuratie van de redirect URI aan jouw kant. Zie de leidraad voor een uniforme e-mail-API voor de volledige authenticatiestroom.
# Genereer een gehoste authenticatielink voor uw gebruiker
krul -X POST \
"https://api3.unipile.com:PORT/api/v1/hosted/accounts/link" \
-H "X-API-KEY: JOUW_API_SLEUTEL" \
-H "Content-Type: application/json" \
-d '{"type":"EMAIL","name":"user@example.com","success_redirect_url":"https://yourapp.com/connected"}'
#-antwoord: { "url": "https://auth.unipile.com/..." }
# Stuur deze URL naar je gebruiker – hij of zij voltooit de OAuth-procedure bij zijn of haar providerZodra de gebruiker hun account heeft gekoppeld, roep dan het e-mailadres endpoint aan met hun account_id. Het antwoord is identiek, ongeacht of de onderliggende mailbox Gmail, Outlook of IMAP is.
# E-mails in de inbox weergeven (werkt voor Gmail, Outlook en IMAP)
krul -X GET \
"https://api3.unipile.com:POORT/api/v1/emails?account_id= ACCOUNT_ID&limit=50" \
-H "X-API-KEY: JOUW_API_SLEUTEL"
# Filteren op map
krul "...?account_id=ACCOUNT_ID&folder=POSTVAK&limit=50" -H "X-API-KEY: JOUW_API_SLEUTEL"
# Filter alleen ongelezen
krul "...?account_id=NUMMER_ ACCOUNT&unread=true" -H "X-API-KEY: JOUW_API_SLEUTEL"Haal een volledige e-mail op met ID. Unipile retourneert een gedecodeerd, genormaliseerd object met platte tekst body, HTML body en metadata van bijlagen - er is geen MIME-parsing aan jouw kant vereist.
# Een enkele e-mail ophalen met de volledige tekst + bijlagen
krul -X GET \
"https://api3.unipile.com:POORT/api/v1/emails/E-MAIL_ID" \
-H "X-API-KEY: JOUW_API_SLEUTEL"
#-antwoordvelden (altijd genormaliseerd):
# { "id", "onderwerp", "datum", "van_deelnemer", "aan_deelnemers",
# "body", "body_plain", "bijlagen": [{ "id", "bestandsnaam", "grootte" }] }Registreer een webhook-endpoint in uw Unipile-dashboard. Unipile abstraheert Gmail Pub/Sub, Microsoft Graph-wijzigingsmeldingen en IMAP IDLE tot één email.ontvangen gebeurtenis. Geen abonnementsvernieuwing, geen IDLE connection pool om te beheren.
// Unipile roept uw eindpunt aan wanneer een nieuwe e-mail arriveert
// Zelfde gebeurtenis voor Gmail-, Outlook- en IMAP-gebruikers
app.post('/webhooks/email', (req, res) => {
const { event, account_id, email_id } = req.body;
als (gebeurtenis === 'e-mail.ontvangen') {
// Haal de volledige e-mailgegevens op
verwerkNieuweE-mail(account_id, email_id);
}
res.status verzenden(200);
});De volledige API-handleiding voor e-mail behandelt authenticatie, alle eindpunten, paginering, het downloaden van bijlagen, beveiliging en naleving in detail.
E-mails lezen: codevoorbeelden per taal
Productiegereed codefragmenten voor het lezen van e-mails met de unified read email API van Unipile. Alle voorbeelden lezen uit Gmail-, Outlook- en IMAP-accounts met dezelfde code.
importeer fetch van 'node-fetch';
const BASIS = 'https://api3.unipile.com:POORT/api/v1';
const API_SLEUTEL = proces.env.UNIPILE_API_SLEUTEL!;
interface E-mail {
id: snaar;
onderwerp: snaar;
datum: snaar;
van_deelnemer: { display_name: snaar; identificatie: snaar };
body: snaar;
lichaam_tekst snaar;
bijlagen: { id: snaar; bestandsnaam: snaar; grootte: getal }[];
}
// Inbox e-mails weergeven - werkt voor Gmail, Outlook en IMAP
async function e-mails lijst(accountID: snaar, limiet = 50) {
const res = wacht op fetch(
`${BASE}/emails?account_id=${accountId}&limit;=${limit}&folder;=INBOX`,
{ headers: { 'X-API-KEY': API_SLEUTEL } }
);
const gegevens = wacht op res.json();
return data.voorwerpen als E-mail[];
}
// Vraag een enkele e-mail op met volledige inhoud + bijlagen
async function e-mailadres ophalen(e-mailadres: snaar) {
const res = wacht op fetch(`${BASE}/emails/${emailId}`,
{ headers: { 'X-API-KEY': API_SLEUTEL } }
);
return wacht op res.json() als E-mail;
}
// Gebruik
const e-mails = wacht op e-mails lijst('acc_01abc...');
e-mails.voorElk(e => console.log(e.onderwerp, e.van_deelnemer.identifier));importeer os
importeer verzoekt
BASIS = "https://api3.unipile.com:PORT/api/v1"
KOPTEKSTEN = {"X-API-SLEUTEL"os.environ["UNIPILE_API_SLEUTEL"]}
def e-mails weergeven(account_id: str, limiet: int = 50) -> lijst:
"""Inbox-e-mails weergeven - werkt voor Gmail, Outlook en IMAP."""
adem = verzoeken.krijgen(
f"{BASE}/emails",
headers=HEADERS,
params={
"account_id"account_id,
"limiet"limiet,
"folder": "INBOX",
},
)
resp.raise_for_status()
return resp.json()["items"]
def e-mail_ophalen(email_id: str) -> dict:
"Haal een enkele e-mail op met body en bijlagen."
adem = verzoeken.krijgen(f"{BASE}/emails/{email_id}", headers=HEADERS)
resp.raise_for_status()
return resp.json()
# Gebruik
e-mails = e-mails weergeven("acc_01abc...")
voor e-mail in e-mails
print(e-mail["onderwerp", e-mail["van_deelnemer"]["identificatiemiddel"])
# Volledige tekst ophalen voor eerste e-mail
vol = e-mail_ophalen(e-mails[0]["id"])
print(volledig"lichaam_plat"])pakket hoofd
importeer (
"encoding/json"
"fmt"
"net/http"
"bot"
)
type E-mail struct {
ID snaar `json:"id"`
Onderwerp snaar `json:"onderwerp"`
Lege pagina snaar `json:"tekst_platte"`
}
type ListResponse struct {
Items []E-mail `json:"items"`
}
functie e-mails lijst(accountID string) ([]E-mail, fout) {
url := "https://api3.unipile.com:PORT/api/v1/emails?account_id=" + accountID
vereist, _ := http.Nieuwe aanvraag("HAAL", url, nul)
req.Header.Set("X-API-SLEUTEL", os.Getenv("UNIPILE_API_SLEUTEL"))
resp, err := http.DefaultClient.Doe(verzoek)
als fout != nul { return nul, uhm }
uitstellen resp.Body.Sluiten()
en resultaat ListResponse
json.NewDecoder(resp.Body).Ontcijfer(&resultaat)
return result.Items, nul
}
functie hoofd() {
e-mails, _ := e-mails lijst("acc_01abc...")
voor _, e := bereik e-mails {
fmt.Println(e.Onderwerp)
}
}Real-Time E-mail Lezen: Webhooks versus Polling
Weten wanneer een nieuwe e-mail arriveert is net zo belangrijk als deze kunnen lezen. Er zijn drie mechanismen beschikbaar, elk met zeer verschillende operationele kenmerken op schaal.
Polling
Uw applicatie roept de list emails-endpoint aan op een timer (elke 30 seconden, elke 5 minuten). Eenvoudig te implementeren, maar verbruikt quota, introduceert latentie en schaalt niet voorbij een handvol accounts.
Native Provider Webhooks
Gmail Pub/Sub en Microsoft Graph-wijzigingsmeldingen pushen gebeurtenissen onmiddellijk naar uw server. Snel en quota-efficiënt, maar elk vereist een aparte instelling, aparte vernieuwingslogica en verschillende gebeurtenisschema's.
Unipile Unificated Webhooks
Unipile abstraheert alle provider pushmechanismen achter een enkele email.ontvangen een gebeurtenis. Eén eindpunt ontvangt notificaties voor Gmail-, Outlook- en IMAP-accounts; met automatisch abonnementvernieuwing intern afgehandeld.
Onder de motorkap beheert Unipile Gmail Pub/Sub abonnementen, Microsoft Graph change notification abonnementen en IMAP IDLE verbindingen - per gekoppeld account, automatisch vernieuwd. Uw applicatie registreert één webhook-URL en ontvangt één genormaliseerd event, ongeacht de onderliggende provider.
Beveiliging en naleving bij het lezen van e-mails van gebruikers
Toegang tot e-mails van gebruikers brengt aanzienlijke beveiligings- en wettelijke verantwoordelijkheden met zich mee. Hier zijn de vier gebieden die u moet aanpakken voordat u een integratie voor het lezen van e-mails naar productie brengt.
OAuth-bereikminimalisatie
Vraag altijd de minimaal vereiste OAuth-bereik. Voor het lezen van e-mails, gebruik alleen-lezen bereiken - vraag nooit om verzend- of opstelrechten als je applicatie alleen toegang nodig heeft tot de inbox. Gmail alleen-lezen scope is gmail.alleenlezen. Microsoft Graph tegenhanger is Mail.lezen. Het aanvragen van brede scopes activeert strengere beoordelingsprocessen van Google en Microsoft en vermindert het vertrouwen van gebruikers op het toestemmingsscherm.
Beste praktijken voor tokenopslag
OAuth-toegangstokens en vernieuwingstokens zijn inloggegevens. Sla ze op versleuteld tijdens opslag gebruik AES-256 of equivalent, nooit in platte tekst in uw database. Roteer encryptiesleutels volgens een schema. Log nooit tokens in applicatielogs. Implementeer token intrekking wanneer een gebruiker zijn account ontkoppelt - bel het intrekkingseindpunt van de provider, verwijder niet simpelweg het database record.
AVG en datalocatie
E-mailberichten bevatten vaak persoonsgegevens die onder de AVG vallen. U moet in uw privacybeleid precies documenteren welke e-mailgegevens u verzamelt, bewaart, verwerkt en voor hoe lang. Implementeer een datadwervingsproces dat de inhoud van e-mails verwijdert wanneer een gebruiker om verwijdering vraagt. Als u e-mailinhoud opslaat in uw eigen infrastructuur, houd dan rekening met de eisen inzake gegevensresidentie voor EU-klanten.
Google CASA en Microsoft Publisher Verificatie
Toepassingen die om gevoelige Gmail-scopes vragen (inclusief gmail.alleenlezenmoet Google's voltooien CASA Tier 2 beveiligingsbeoordeling voordat ze verder mogen dan de testlimiet van 100 gebruikers. Microsoft vereist Publisher Verificatie voor apps die bepaalde Graph-scopes aanvragen. Beide processen duren weken - plan dienovereenkomstig vóór uw lanceringsdatum. Het gebruik van Unipile neemt deze certificeringen over van het platformniveau.
Unipile verzorgt de Gmail CASA Tier 2-certificering, Microsoft Publisher Verification, SOC 2 Type II-audit en GDPR-verwerkings-overeenkomsten op platformniveau. Producten die op Unipile zijn gebouwd, erven deze certificeringen in plaats van deze zelfstandig te voltooien.
E-mail API Prijzen: Gratis Tiers en Kostenmodellen
De gratis niveaus voor native provider-API's zijn genereus bij laag gebruik, maar de verborgen kosten komen naar voren wanneer u meerdere providers moet ondersteunen, tokenvernieuwing op schaal moet beheren of limieten voor de tarieven moet bereiken. Hier is een eerlijke analyse.
| Provider | Gratis niveau | Kostenmodel | Rate limit | Verborgen kosten |
|---|---|---|---|---|
| Gmail API | Gratis met quota | Quota-eenheden per verzoek. Geen facturering per account | 250 eenheden/sec/gebruiker, 1 miljard eenheden/dag | CASA Tier 2 beoordeling, MIME-parsing, Pub/Sub vernieuwingslogica |
| Microsoft Graph | Gratis met snelheidsbeperking | Inbegrepen bij Microsoft 365 tenant. Geen kosten per gesprek | 10.000 verzoeken/10 min/app/huurder | Uitgeversverificatieproces, abonnementsverlenging, per huurder OAuth-apps |
| IMAP (zelf gehost) | Vrij protocol | Geen API-kosten. Infrastructuurkosten voor verbindingspools | Provider-specifiek, ~10-20 verbindingen/account | Serverinfrastructuur, beheer van inactieve verbindingen, geen push-ondersteuning |
| Unipile | 7 dagen gratis proberen | Per gekoppelde account per maand. Zie gratis e-mail API-niveau | Intern afgehandeld, ingebouwde herhaallogica | API-aanroepkosten per account - verrekend door geëlimineerde OAuth/MIME-engineering |
Beginnend met een gratis e-mail API? De Gmail API en Microsoft Graph bieden beide gratis toegang binnen quota limieten. Unipile biedt een proefperiode van 7 dagen zonder creditcard, die Gmail, Outlook en gekoppelde IMAP-accounts omvat.
Probeer gratisVeelvoorkomende valkuilen bij het bouwen van een lees-e-mailintegratie
Dit zijn de fouten die consequent leiden tot productie-incidenten voor teams die hun eerste lees-e-mail-API-integratie implementeren. Leer ze voordat u ze tegenkomt.
Gmail's 250 quota-eenheden per seconde per gebruiker klinkt gul totdat je 500 accounts hebt en een initiële inbox synchronisatie moet uitvoeren. Het weergeven van 500 berichten kost 2.500 eenheden; het ophalen van elk volledig bericht kost nog eens 2.500. Initiële synchronisaties voor grote postbussen kunnen dagelijkse quota's in uren uitputten.
OAuth-vernieuwingstokens verlopen geruisloos - Google trekt ze in na 6 maanden inactiviteit, na een wachtwoordwijziging, of wanneer een gebruiker de toegang intrekt via de instellingen van hun Google-account. Als je vernieuwingslogica voor tokens geen 401-fout detecteert en deze aan de gebruiker toont, stopt je applicatie simpelweg met het lezen van e-mails zonder zichtbare fout.
laatst_gesynchroniseerd_om tijdstempel en waarschuwing wanneer het uw verwachte synchronisatie-interval overschrijdt.Gmail-labels en IMAP-mappen zijn geen gelijkwaardige concepten. Gmail's INBOX Het label omvat geen berichten die zijn gearchiveerd (uit de INBOX verwijderd maar niet definitief gewist). De INBOX-map in Microsoft Graph houdt geen rekening met de geselecteerde INBOX ten opzichte van andere vensterindelingen, tenzij u beide opvraagt. Teams merken vaak dat ze 20-40% aan berichten missen vanwege verkeerde aannames over mappen.
ALLES berichten (niet alleen de INBOX) en het filteren op datum aan jouw kant.E-mailteksten kunnen in allerlei verschillende tekencoderingen voorkomen: UTF-8, ISO-8859-1, Windows-1252, Shift-JIS. Gmail retourneert onderdelen die in base64url zijn gecodeerd. IMAP retourneert onderdelen die in quoted-printable zijn gecodeerd. Als je de ene codering naar de andere decodeert, ontstaat er een beschadigde tekst die onzichtbaar is in je lokale testomgeving (die waarschijnlijk alleen ASCII-e-mails verstuurt).
Content-Transfer-Encoding en codeer het opnieuw naar UTF-8. Test dit specifiek met e-mailberichten die veel Japans, Arabisch en emoji’s bevatten.Om een uniforme weergave van discussiethreads te realiseren voor Gmail-, Outlook- en IMAP-accounts, moeten drie totaal verschillende modellen voor discussiethreads op elkaar worden afgestemd. Gmail heeft eigen thread-ID’s. Outlook heeft conversatie-ID’s die zich anders gedragen. IMAP kent helemaal geen eigen discussiethreads – je reconstrueert threads op basis van Bericht-ID, Referentiesen In-Reply-To kopteksten, die niet altijd aanwezig of correct zijn.
E-mail-API - Veelgestelde vragen
De meest gestelde vragen van ontwikkelaars die hun eerste read e-mail API-integratie bouwen.
gmail.alleenlezen bereik, verkrijg een toegangstoken via OAuth-toestemming en roep vervolgens GET /gmail/v1/users/me/messages om berichten te vermelden en GET /users/me/messages/{id}?format=full om individuele e-mails op te halen. Berichten worden geretourneerd als base64url-gecodeerde MIME-delen die u moet decoderen.GET /api/v1/emails) die genormaliseerde JSON retourneert voor zowel Gmail-, Outlook- als IMAP-accounts. Je verifieert gebruikers eenmalig via een gehoste OAuth-link, waarna Unipile de providerspecifieke OAuth-processen, MIME-parsing en realtime webhook-abstractie afhandelt achter één consistente interface. Bekijk onze Handleiding voor e-mail-API voor de volledige bronvermelding./berichten/{id}/bijlagen. IMAP vereist het parsen van de MIME-structuur om bijlageonderdelen te identificeren. Met Unipile zijn bijlage-metadata (bestandsnaam, grootte, MIME-type) opgenomen in het e-mailantwoord en is bijlage-inhoud beschikbaar via een speciaal eindpunt - er is geen MIME-parsing vereist.email.ontvangen webhook-gebeurtenis die wordt geactiveerd voor Gmail-, Outlook- en IMAP-accounts met automatisch intern beheerd abonnement.Opnieuw-Proberen-Na Kop. Implementeer exponentiële backoff met jitter voor productiebetrouwbaarheid. IMAP-limieten zijn provider-specifiek, doorgaans 10-20 gelijktijdige verbindingen per account.