SendGrid innkommende e-post
Status200s Incoming Email Monitor lar deg opprette og løse varsler basert på e-poster som sendes til unike, monitorspesifikke e-postadresser. Det er nyttig for å integrere eldre systemer, varslingsverktøy eller enhver tjeneste som kan sende e-post.
Det samme oppsettet lar også arbeidsflyter motta e-post: En arbeidsflyt med utløseren Incoming Email får sin egen adresse på det samme domenet, og hver e-post til den starter arbeidsflyten. Se Utløsere.
Denne veiledningen forklarer hvordan du setter opp SendGrid Inbound Parse til å videresende innkommende e-poster til din selvhostede Status200-instans. Status200 Cloud trenger ingenting av dette: Der virker adressene med en gang.
Slik fungerer det
Slik når en e-post frem til en monitor
- Du oppretter en Incoming Email Monitor i Status200
- Status200 genererer en unik e-postadresse for den monitoren (f.eks.
monitor-abc123@inbound.yourdomain.com) - Når en e-post sendes til den adressen, mottar SendGrid den og videresender den til Status200 via webhook
- Status200 vurderer e-posten etter kriteriene du har satt opp, for å opprette eller løse varsler
Forutsetninger
- En SendGrid-konto med tilgang til Inbound Parse
- Et domene du kontrollerer, med tilgang til DNS-innstillingene
- Et offentlig HTTPS-endepunkt som videresender SendGrid-webhooks til Status200-instansen din
Nettverkstilgang
Med Inbound Parse er det SendGrid som oppretter forbindelsen til Status200. Det er ikke nok å bare tillate utgående internettilgang fra Status200.
| Retning | Mål | Protokoll / port | Formål |
|---|---|---|---|
| SendGrid → Status200 | https://your-oneuptime-domain.com/incoming-email/sendgrid/YOUR_SECRET | HTTPS / TCP 443 | Levere den tolkede e-posten som en multipart-POST. |
| Avsendende e-postservere → SendGrid | mx.sendgrid.net, valgt via den offentlige MX-posten for det innkommende domenet ditt | SMTP / TCP 25 | Motta e-post hos SendGrid; denne forbindelsen går ikke til Status200-serveren din. |
| Status200 → SendGrid, bare når sending av e-post via SendGrid-leverandøren er satt opp separat | api.sendgrid.com | HTTPS / TCP 443 | Sende varslings-e-poster via Mail Send API-et. |
Publiser DNS for vertsnavnet til webhooken, og lever et sertifikat som offentlige klienter stoler på. En privat Status200-installasjon kan nøye seg med å eksponere webhook-stien gjennom en offentlig omvendt proxy eller gateway som når Status200 internt. Bevar stien, hemmeligheten, innholdstypen og multipart-forespørselens body, og slipp POST-en gjennom uten interaktiv pålogging eller nettleserutfordring. Status200-serveren trenger ikke en innkommende SMTP-lytter. Se SendGrids oppsett av Inbound Parse.
Sett INBOUND_EMAIL_WEBHOOK_SECRET til en sterk tilfeldig verdi, og erstatt YOUR_SECRET i URL-en med den verdien. Ruten krever det siste stisegmentet, og Status200 tar bare imot en e-post når det segmentet er hemmeligheten. Inntil hemmeligheten er satt, avvises hver e-post med 503, som SendGrid prøver på nytt i opptil tre dager. Hold den fullstendige URL-en og monitorenes e-postadresser hemmelige, også i proxylogger. Status200 validerer foreløpig verken SendGrids signerte Inbound Parse-hoder eller OAuth-tokener. Trenger du de mekanismene, setter du opp en gateway som validerer dem før den videresender til den fullstendige URL-en, etter SendGrids dokumentasjon om webhook-sikkerhet.
SendGrid tilbyr ikke en pålitelig liste over statiske kilde-IP-er for Inbound Parse. SendGrids IP-er for sending av e-post og adressene som slås opp for mx.sendgrid.net, er ikke en tillatelsesliste for webhooks. Følg SendGrids veiledning om brannmurer i stedet for å låse et gjeldende DNS-resultat.
Inbound Parse er atskilt fra sending av utgående e-post. For å motta monitor-e-poster trenger ikke Status200 å kalle SendGrid-API-et. Velger du også SendGrid til å sende varsler, tillater du DNS-oppslag og utgående HTTPS til api.sendgrid.com; Mail Send trenger ingen innkommende tilbakekalling for innsending. Bruker du SMTP i stedet, tillater du SMTP-serveren og porten som er satt opp i Status200.
Oppsettsveiledning
Velg domenet for innkommende e-post
Velg et underdomene som bare brukes til å motta e-post for Status200, for eksempel
inbound.yourdomain.com,email.yourdomain.comellermonitor.yourdomain.com. Det brukes bare til e-post til Status200-monitorer og -arbeidsflyter, så ingen av postkassene dine ligger på det.La MX-posten peke på SendGrid
Legg til en MX-post som sender e-post for underdomenet videre til SendGrid:
Type Vert/Navn Prioritet Verdi MX inbound 10 mx.sendgrid.net Hvis domenet ditt er
example.comog du brukerinbound.example.com, blir posten:inbound.example.com. IN MX 10 mx.sendgrid.net.DNS-endringer kan ta opptil 48 timer å spre seg, men er som regel ferdige i løpet av noen få timer.
Autentiser domenet i SendGrid
Det mottakende domenet må høre til et av dine autentiserte domener i SendGrid. Gå i SendGrid-dashbordet til Settings > Sender Authentication, klikk på Authenticate Your Domain, og legg til DNS-postene den ber om (CNAME-poster for DKIM).
Legg til Inbound Parse-webhooken
Gå i SendGrid-dashbordet til Settings > Inbound Parse, og klikk på Add Host & URL. Fyll ut skjemaet som nedenfor, og klikk deretter på Add:
Felt Verdi Receiving Domain Underdomenet ditt for innkommende e-post (f.eks. inbound.yourdomain.com)Destination URL https://your-oneuptime-domain.com/incoming-email/sendgrid/YOUR_SECRETCheck incoming emails for spam Valgfritt – slå på om ønskelig Send raw, full MIME message La være uavkrysset (ikke nødvendig) POST the raw, full MIME message La være uavkrysset (ikke nødvendig) Konfigurer Status200
Sett variablene for innkommende e-post, med den samme hemmeligheten som i Destination URL:
Docker Compose
INBOUND_EMAIL_PROVIDER=SendGrid INBOUND_EMAIL_DOMAIN=inbound.yourdomain.com INBOUND_EMAIL_WEBHOOK_SECRET=replace-with-a-strong-random-secretKubernetes
inboundEmail: provider: "SendGrid" domain: "inbound.yourdomain.com" webhookSecret: "replace-with-a-strong-random-secret"INBOUND_EMAIL_WEBHOOK_SECRETer påkrevd: Status200 avviser hver e-post så lenge den er tom eller fortsatt en plassholder fra denne siden.openssl rand -hex 32lager en lang tilfeldig verdi.Ta dem deretter i bruk: Kjør
npm run startpå Docker Compose, som gjenoppretter containerne med de nye verdiene, eller oppgrader Helm-releasen på Kubernetes.Opprett en Incoming Email-monitor
Opprett en Incoming Email-monitor. Siden Oversikt viser adressen, for eksempel
monitor-abc123def456@inbound.yourdomain.com, og kriteriene avgjør hvilke e-poster som oppretter et varsel og hvilke som løser det.Arbeidsflyter bruker det samme domenet. Legg til utløseren Incoming Email i en arbeidsflyt og klikk på den: Adressen (
workflow-…@inbound.yourdomain.com) står øverst i innstillingene. Til variablene for innkommende e-post ovenfor er satt, sier utløseren at serveren ikke er satt opp til å motta e-post.Send en test-e-post
Send en e-post til monitorens adresse, med et emne som samsvarer med kriteriene. Monitorens sammendrag viser e-posten, og et varsel opprettes når kriteriene samsvarer.
Referanse for miljøvariabler
| Variabel | Helm-verdi | Beskrivelse | Påkrevd | Standard |
|---|---|---|---|---|
INBOUND_EMAIL_PROVIDER | inboundEmail.provider | Leverandøren av innkommende e-post. SendGrid er den eneste. | Nei | SendGrid |
INBOUND_EMAIL_DOMAIN | inboundEmail.domain | Underdomenet som er satt opp for innkommende e-post. Innkommende e-post er av til det er satt. | Ja | Tom |
INBOUND_EMAIL_WEBHOOK_SECRET | inboundEmail.webhookSecret | Hemmelighet som det siste segmentet i webhook-URL-en må samsvare med: /incoming-email/sendgrid/YOUR_SECRET. Hver e-post avvises så lenge den er tom eller en plassholder. | Ja | Tom |
Hva en Incoming Email-monitor kan se etter – emnet, avsenderen, innholdet, mottakeren og om en e-post kom frem i tide – står i Tilgjengelige filtertyper.
Feilsøking
E-poster blir ikke mottatt
- Kontroller DNS-spredningen:
dig MX inbound.yourdomain.comskal returneremx.sendgrid.net. - Kontroller Inbound Parse-innstillingene i SendGrid: Sjekk domenet ditt og webhook-URL-en i SendGrid-dashbordet under Settings > Inbound Parse.
- Sjekk loggene til Status200: Se etter webhook-forespørsler for innkommende e-post, og eventuelle feil, i loggene til Status200-tjenesten
app. SendGrid lagrer ingen detaljerte logger for Inbound Parse, så disse loggene er oversikten over hva som kom frem.
Webhooks feiler
- Kontroller den offentlige webhook-ruten: Den fullstendige URL-en, inkludert hemmeligheten, må nå Status200 fra internett. URL-en uten det siste hemmelige segmentet samsvarer ikke med ruten.
- Kontroller brannmurreglene: Tillat HTTPS POST-forespørsler til webhook-stien uten påloggingsomdirigeringer eller nettleserutfordringer, og ikke bruk SendGrids IP-er for sending av e-post som tillatelsesliste for webhookens kilde.
- Kontroller SSL-sertifikatet: Bruk et gyldig, offentlig klarert sertifikat for vertsnavnet til webhooken, og ta med sertifikatkjeden.
- Kontroller webhook-hemmeligheten: Destination URL må slutte med verdien av
INBOUND_EMAIL_WEBHOOK_SECRET. Så lenge variabelen er tom eller en plassholder, avvises hver e-post med503, og loggen til tjenestenappsier det når den starter; en e-post sendt til en URL som slutter med noe annet, avvises med403.
Monitoren oppretter ikke varsler
- Kontroller kriteriene: Sjekk at kriteriene for å opprette varsler samsvarer med innholdet i e-posten, og test først med eksakte strenger før du bruker mønstre.
- Sjekk monitoren: Sørg for at den ikke er deaktivert, og at typen er Incoming Email.
- Gå gjennom monitorens sammendrag: Sjekk om e-posten ble mottatt og behandlet, og les evalueringsloggene for hvordan kriteriene samsvarte.
Utløseren sier at serveren ikke er satt opp til å motta e-post
INBOUND_EMAIL_DOMAIN er tom på serveren. Sett den, ta endringen i bruk, og åpne arbeidsflytens utløser igjen.
Beste praksis for sikkerhet
- Bruk HTTPS: Bruk alltid HTTPS for webhook-endepunktet ditt
- Webhook-hemmelighet: Bruk en lang tilfeldig verdi som er din egen, til
INBOUND_EMAIL_WEBHOOK_SECRET, på slutten av webhook-URL-en (f.eks./incoming-email/sendgrid/your-secret): det er den som skiller SendGrids e-poster fra alle andres - Domenebekreftelse: Bekreft domenet ditt i SendGrid for bedre e-postsikkerhet
- Begrens tilgangen: Opprett bare monitorer for klarerte e-postkilder
- Overvåk logger: Gå jevnlig gjennom loggene for innkommende e-post for mistenkelig aktivitet