Skip to Content

Mail Pilot

Mail Pilot erstatter WordPress’ indbyggede mail-funktion med Brevos transaktionsmailtjeneste. Det sender hver udgående besked gennem Brevos HTTP-API (med en automatisk SMTP-fallback), registrerer hver afsendelse i en søgbar log og verificerer leveringen i realtid via webhooks. Resultatet er pålidelig transaktionsmail og fuld synlighed over, hvad dit site rent faktisk leverer.

Pluginet er tænkt til site-ejere og administratorer, der har brug for at vide, at password resets, ordrebekræftelser, svar fra kontaktformularer, WooCommerce-notifikationer og anden systempost faktisk når frem. Det tilføjer ikke marketing- eller kampagnefunktioner: det dækker WordPress’ transaktionslag.

Højdepunkter

  • Levering via Brevo-API. Alle wp_mail()-kald sendes gennem Brevos transaktions-API, som forbedrer leverbarheden i forhold til PHP’s standardfunktion mail().
  • Automatisk SMTP-fallback. Hvis API-kaldet ikke kan fuldføres (for eksempel pga. en midlertidig netværksfejl), prøves beskeden igen via Brevo SMTP, så ingen mail går tabt.
  • Søgbar mail-log. Hver udgående besked gemmes med modtager, emne, krop, headers, status og tidsstempel. Loggen kan filtreres efter status og søges på modtager eller emne.
  • Sporing af åbninger og klik. Når slået til, indsætter Brevo en sporingspixel og omskriver links, så pluginet kan registrere åbninger og klik for hver besked.
  • Leveringsverifikation via webhooks. Brevo sender events tilbage for delivered, hard bounce, soft bounce, blocked, deferred og spam-klager, som Mail Pilot afspejler i logposten.
  • Automatisk oprydning. En planlagt WordPress cron-opgave fjerner gamle log-rækker efter en justerbar opbevaringsperiode, så databasen ikke vokser uden ende.
  • Konfliktforebyggelse. Mail Pilot opdager andre SMTP-plugins (især WP Mail SMTP) og advarer, når begge ville overstyre wp_mail(), så duplikerede eller tabte mails undgås.
  • Gensend og test. Enhver logget besked kan gensendes fra admin-siden, og et indbygget test-mail-værktøj verificerer konfigurationen.

Krav

  • WordPress 6.0 eller nyere.
  • PHP 7.4 eller nyere (PHP 8.1+ anbefales).
  • En Brevo-konto (gratisplanen rækker til typiske transaktionsvolumener).
  • En verificeret afsenderadresse eller et autentificeret afsenderdomæne i Brevo.
  • Udgående HTTPS-adgang fra WordPress-serveren til api.brevo.com på port 443, plus port 587 til SMTP-fallback.
  • WordPress cron (wp-cron) aktiveret, eller en system-cron-opgave, der rammer wp-cron.php, så oprydningen kører som planlagt.

Installation

  1. Hent den seneste mail-pilot.zip fra din konto eller fra plugin-downloadsiden.
  2. Åbn i WordPress-administrationen Plugins → Tilføj nyt → Upload plugin.
  3. Vælg ZIP-filen, klik på Installer nu, og dernæst Aktiver plugin.
  4. Efter aktivering dukker et nyt punkt op under Mail Pilot → Indstillinger. Pluginet tilføjer også en menu på øverste niveau, Mail Pilot, som giver direkte adgang til log- og statistikskærmene.

Ved aktivering opretter Mail Pilot sin egen databasetabel ({prefix}_mail_pilot_logs), som bruges til at gemme mail-loggen. Ingen mails opfanges, før API-nøglen er gemt, og integrationen er slået til.

Konfiguration

Konfigurationen er delt i tre områder: Brevo-credentials, afsenderidentitet og operationelle indstillinger for logning, sporing og opbevaring. Alle indstillinger ligger under Mail Pilot → Indstillinger.

1. Opret en Brevo-konto og en API-nøgle

  1. Tilmeld dig på brevo.com , hvis du ikke allerede har en konto. Gratisplanen tillader en pæn mængde transaktionsmails om dagen, hvilket er rigeligt for de fleste små og mellemstore sites.
  2. Log ind i Brevo-dashboardet.
  3. Åbn brugermenuen i øverste højre hjørne og vælg SMTP & API.
  4. Vælg fanen API Keys og klik på Generate a new API key.
  5. Giv nøglen et genkendeligt navn (f.eks. wordpress-mail-pilot) og kopier den genererede værdi. Brevo viser kun hemmeligheden én gang; gem den et sikkert sted.

2. Verificer en afsender

Brevo nægter at sende beskeder fra en ikke-verificeret afsender. Inden du gemmer konfigurationen i WordPress, så sørg for, at enten afsenderadressen eller hele domænet er verificeret i Brevo:

  • For en enkelt adresse: åbn Senders, Domains & Dedicated IPs → Senders i Brevo, tilføj adressen, og bekræft den via den mail, Brevo sender.
  • For et domæne: åbn Senders, Domains & Dedicated IPs → Domains og følg guiden, der beder dig om at tilføje SPF-, DKIM- og DMARC-DNS-records. Domæneautentificering giver den bedste leverbarhed og anbefales kraftigt på produktionssites.

3. Indtast credentials i WordPress

  1. Åbn Mail Pilot → Indstillinger i WordPress-administrationen. Siden er delt i tre faner — Generelt, Logning og Avanceret — men credentials og test-maileren ligger alle på fanen Generelt.
  2. (Valgfrit) Indsæt din PILOT-XXXX-XXXX-XXXX-XXXX-nøgle i Licens-kortet øverst, og tryk på Verificer og gem for at slå automatiske plugin-opdateringer fra GitHub-release-feedet til.
  3. Lad i Forbindelse-kortet Mail Provider stå på Brevo (den eneste provider, der leveres i dag).
  4. I Brevo-indstillinger-kortet indsætter du API-nøglen i feltet API Key og trykker på Test Connection for at validere adgangsoplysningerne mod Brevo-API’en.
  5. I Afsender-kortet sætter du:
    • Fra-adresse til den verificerede adresse fra forrige trin, og sætter flueben ved Force From Email for at overstyre enhver afsender pr. mail, som andre plugins ville sætte.
    • Fra-navn til den etiket, der skal optræde som afsender på udgående beskeder, og sætter flueben ved Force From Name, så det også vinder over per-mail-overstyringer.
  6. Klik på Gem indstillinger.

Vil du sende en hurtig verifikationsmail, ligger Test Email-kortet nederst på Generelt-fanen med et Send Til-felt og en Send Test-knap.

Mail Pilot — Indstillinger (Generelt-fanen)
Mail Pilot-indstillinger — Generelt-fanen med kort til Licens, Forbindelse, Brevo-indstillinger, Afsender og Test Email.

4. Send en test-mail

Under credentials-sektionen lader formularen Send test email dig verificere konfigurationen end to end:

  1. Indtast destinationsadressen (din egen indbakke er et godt valg).
  2. Klik på Send test email.
  3. Pluginet viser straks en succes- eller fejlbesked, og beskeden dukker op i loggen inden for få sekunder.

Hvis testbeskeden når frem til indbakken, virker API-integrationen. Hvis den ikke kommer frem inden for et par minutter, så åbn logposten og se de svardetaljer, Brevo har returneret, og kig derefter på afsnittet Fejlfinding længere nede.

5. Konfigurer leverings-webhook’en

Åbnings-, klik- og leveringsevents skubbes tilbage til WordPress af Brevo via en webhook. Det er valgfrit at sætte den op, men anbefalet, fordi loggen uden den kun viser, at beskeden blev accepteret af Brevo, ikke om den faktisk blev leveret, bouncede eller blev åbnet.

  1. Kopier Webhook-URL’en, der vises på indstillingssiden i Mail Pilot. Den peger på REST-endpointet https://<dit-site>/wp-json/mail-pilot/v1/webhook.
  2. Åbn i Brevo-dashboardet Transactional → Settings → Webhook og klik på Add a new webhook.
  3. Indsæt URL’en i feltet URL to call.
  4. Vælg de events, der skal rapporteres. Anbefalet sæt:
    • Sent
    • Delivered
    • Hard bounce
    • Soft bounce
    • Blocked
    • Spam (klage)
    • Opened (kun hvis åbnings-sporing er slået til)
    • Clicked (kun hvis klik-sporing er slået til)
  5. Gem webhooken.

Brevo begynder straks at sende statusopdateringer til WordPress. Tabellen i loggen opdaterer statuskolonnen, efterhånden som eventene kommer ind.

6. Sporing, opbevaring og oprydning

Fanerne Logning og Avanceret på indstillingssiden viser de operationelle valg:

  • Aktivér åbnings-sporing. Når slået til, indsætter Brevo en 1×1 sporingspixel i HTML-kroppen. Pixelen hentes af modtagerens mailklient, hvilket tæller som en åbning.
  • Aktivér klik-sporing. Når slået til, omskrives links i HTML-mails, så de peger på en Brevo-redirector, der registrerer klikket og videresender brugeren til den oprindelige URL.
  • Log-opbevaring (dage). Antal dage, hvorefter log-poster fjernes af oprydningsopgaven. Standard er 30 dage. Sæt til 0 for at gemme posterne for altid (frarådes på travle sites).
  • Oprydningsplan. Hvor ofte WordPress’ cron-event, der trimmer loggen, kører. Standard er dagligt.
  • Log mail-krop. Når slået fra, gemmes kun metadata (modtager, emne, status), hvilket reducerer databasestørrelsen og undgår at gemme indholdet af følsomme mails som password resets.

Klik på Gem ændringer for at anvende.

Brug

Når integrationen er slået til, virker Mail Pilot gennemsigtigt. Hvert kald til wp_mail() foretaget af WordPress’ kerne, themes eller plugins opfanges og rerouter via Brevo. Ingen kodeændring kræves i WooCommerce, Contact Form 7, WPForms, BuddyPress eller noget andet plugin, der bruger det standard WordPress mail-API.

Dashboardet

Topmenuen Mail Pilot åbner et dashboard, der opsummerer mail-aktiviteten for den valgte periode. En periodevælger øverst skifter mellem 7 dage, 14 dage og 30 dage, og seks KPI-kort i toppen viser Sendte i alt, Leveret (med leveringsrate %), Fejlede (med fejlrate %), Bouncede, Åbninger (med åbningsrate %) og Klik. Tallene opdateres, efterhånden som webhook-events kommer ind.

Mail Pilot — Dashboard
Mail Pilot-dashboard — KPI-kort, diagrammerne Email Volume / Delivery Status / Opens & Clicks / Top Sources / Sending Hours samt Brevo Account-kortet med creditsaldo.

Under KPI’erne viser dashboardet fem live-grafer drevet af pluginets egen log:

  • Email Volume — daglig stablet areal-graf af leverede, blokerede og bouncede beskeder.
  • Delivery Status — donut-opdeling af de samme tre kategorier for den valgte periode.
  • Opens & Clicks — daglig linjegraf for unikke åbninger og klik.
  • Top Sources — vandret søjlegraf over de plugins/themes, der genererer flest mails, udledt af det call site, der registreres ved hver afsendelse.
  • Sending Hours — timehistogram over, hvornår mails forlader sitet, kontra hvornår Brevo sender dem ud — nyttigt for at opdage cron-storme.

Et Brevo Account-kort nederst trækker den live status fra din Brevo-konto: den tilknyttede kontomail, aktuelle creditsaldo og tællere for Requests, Delivered, Opens, Clicks, Hard bounces, Soft bounces, Blocked og Spam reports på tværs af alle afsendelseskanaler (API, SMTP-relay og ekstern software).

Mail-loggen

Mail Pilot — Mail-log
Mail-log — pagineret tabel over hver besked, pluginet har behandlet, med bulk-handlinger, status-/søgefiltre og en View-handling pr. række.

Skærmen Mail-log (Mail Pilot → Mail-log) lister hver besked, pluginet har behandlet, nyeste først, med en bulk-handling-dropdown, et statusfilter, et søgefelt og en Vis-handling pr. række. Hver række viser:

  • Modtageradressen (eller den første adresse, hvis der er flere).
  • Emnet.
  • Aktuel status: queued, sent, delivered, opened, clicked, soft-bounce, hard-bounce, blocked, spam eller error.
  • Tidsstemplet for den seneste statusændring.
  • Brevo-besked-ID (bruges til at krydsreferere posten med Brevos egne logs).

Brug søgefeltet over tabellen til at filtrere på modtager eller emne, eller status-dropdown’en til kun at vise fejlende beskeder. Et klik på en række åbner detaljevisningen, som viser:

  • De fulde headers og kroppen (hvis mail-krop-logning er slået til).
  • Listen over modtagere (To, Cc, Bcc).
  • Hvert sporet event med dets tidsstempel.
  • Det rå Brevo-svar, der er nyttigt ved supportforespørgsler.

Fra detaljevisningen kan du klikke på Gensend for at prøve beskeden igen uændret, eller Kopiér for at bruge den som udgangspunkt for en ny testbesked.

WordPress-dashboard-widget

Mail Pilot registrerer en widget på standard-Dashboard-skærmen (den side, WordPress åbner ved login). Widgetten spejler pluginets eget dashboard i overblik, så du kan spotte leveringsanomalier uden at klikke ind i Mail Pilot-menuen.

Mail Pilot — WordPress-dashboard-widget
Mail Pilot-widgetten på WordPress’ dashboard — periodevælger, daglig linjegraf for Delivered / Failed / Bounced og Brevo-footeren med creditsaldo og live-tællere.

Widgetten viser en periodevælger for Sidste 7 / 14 / 30 dage, en Email Volume-linjegraf (Delivered / Failed / Bounced) og en Brevo-footer med aktuel creditsaldo og tællere for Requests, Delivered, Failed, Bounced, Opens og Clicks. Et link View Full Log i headeren åbner Mail-log-siden.

Widgetten er opt-in: slå den til eller fra under Mail Pilot → Indstillinger → Avanceret → Dashboard-widget.

Sameksistens med andre plugins

Mail Pilot erstatter standardimplementeringen af wp_mail() med sin egen PHPMailer-udvidelse. Det betyder, at det er inkompatibelt med ethvert andet plugin, der gør det samme, heriblandt WP Mail SMTP, Easy WP SMTP, Post SMTP, FluentSMTP og lignende værktøjer. Pluginet opdager de mest almindelige af dem og viser en admin-besked, der beder dig vælge én mailer. Den anbefalede vej er at deaktivere det andet SMTP-plugin og importere dets credentials ind i Mail Pilot, hvis det er nødvendigt.

WooCommerce, BuddyPress, WPForms, Contact Form 7, Easy Digital Downloads og WordPress-kernens notifikationer fortsætter med at virke uden ændringer: de går alle gennem wp_mail() og opfanges derfor automatisk af Mail Pilot.

FAQ

Erstatter Mail Pilot kun transaktionsmails eller også marketingkampagner? Det håndterer kun transaktionsmail, dvs. alt, hvad der sendes gennem WordPress’ wp_mail()-funktion. Marketingkampagner, der oprettes i Brevo-dashboardet, styres dér og dukker ikke op i Mail Pilot-loggen.

Skal jeg betale for Brevo? Nej. Brevos gratisplan har lige nu en daglig kvote for transaktionsmails, der dækker de fleste små og mellemstore sites. Vokser dit volumen, kan du opgradere til en betalt plan direkte fra Brevo-dashboardet uden at geninstallere pluginet.

Kan jeg bruge WP Mail SMTP og Mail Pilot samtidig? Nej. Kun ét plugin kan overstyre wp_mail(); to plugins samtidig fører til duplikerede afsendelser, tabte beskeder eller PHP-fejl. Deaktiver det andet SMTP-plugin, før du slår Mail Pilot til.

Gemmes mail-kroppene i databasen? Kun hvis Log mail-krop er slået til i indstillingerne. Med valget slået fra holder loggen modtager, emne, headers og status, men ikke kroppen — at foretrække, hvis sitet sender password resets eller andet følsomt indhold.

Virker åbnings-sporing med alle mailklienter? Åbnings-sporing afhænger af, at modtageren henter eksterne billeder i sin mailklient. Mange virksomhedsklienter samt Apple Mail Privacy Protection blokerer eller henter pixelen på forhånd, så åbningsrater skal læses som en nedre (eller øvre) grænse, ikke et nøjagtigt tal.

Understøtter pluginet flere afsenderadresser? Standardafsenderen konfigureres globalt. Plugins eller kode, der sender en eksplicit From:-header til wp_mail(), bruger den adresse, så længe den er verificeret i Brevo. Ikke-verificerede adresser afvises af API’en.

Kan jeg eksportere loggen? Ja. Log-skærmen har en Eksporter CSV-knap, der eksporterer den aktuelt filtrerede visning. Eksporten indeholder modtager, emne, status, tidsstempler og Brevo-besked-ID.

Hvor gemmes data? Logs ligger i en custom-tabel kaldet {prefix}_mail_pilot_logs i WordPress-databasen. Indstillinger bor i den almindelige WordPress options-tabel. Intet sendes til tredjepart ud over Brevo selv.

Er Mail Pilot kompatibel med multisite? Ja. Hvert site i et multisite-netværk har sine egne indstillinger og sin egen log-tabel og bruger sin egen Brevo-API-nøgle. Pluginet kan også network-aktiveres.

Fejlfinding

Indstillingssiden viser “API key rejected”. Kopier nøglen fra Brevo igen, og sørg for, at der ikke er foranstillede eller efterstillede mellemrum. Bekræft, at nøglen ikke er trukket tilbage eller indsnævret i Brevo-dashboardet. Nøgler oprettet til v2-API’en virker måske ikke; generér en v3-nøgle fra fanen API Keys.

Test-mails rapporteres som sendt, men kommer aldrig frem. Åbn logposten for testbeskeden og se afsnittene Status og Brevo-svar. De typiske sager er:

  • Modtageren står på Brevos suppression-liste (tidligere bounce eller afmelding). Fjern adressen fra Contacts → Suppressed contacts i Brevo.
  • Afsenderen eller afsenderdomænet er ikke verificeret, så Brevo accepterer kaldet, men blokerer beskeden.
  • Modtagerens mailudbyder har markeret beskeden som spam. Tjek spam-mappen og gennemgå SPF, DKIM og DMARC for afsenderdomænet.

Webhook-events når aldrig loggen. Bekræft, at webhook-URL’en i Brevo matcher den, der vises på Mail Pilots indstillingsside, inklusive protokollen (https) og en eventuel underkatalog i din installation. WordPress skal kunne nås fra det offentlige internet; webhooks kan ikke leveres til et site bag en VPN eller på localhost. Bruger du et sikkerhedsplugin eller en WAF, så sørg for, at kald til /wp-json/mail-pilot/v1/webhook ikke blokeres.

Gamle log-poster slettes ikke. Oprydningen udløses af WordPress’ cron. Har dit site meget lav trafik, fyrer cronen måske ikke ofte nok; konfigurer et system-cron, der kalder wp-cron.php en gang i timen. Du kan også udløse en manuel oprydning med knappen Kør oprydning nu nederst på indstillingssiden.

Mails fra et bestemt plugin sendes ikke gennem Brevo. Tjek, om pluginet sender mail via sin egen SMTP-implementering i stedet for wp_mail(). Plugins, der omgår wp_mail(), kan ikke opfanges; se deres dokumentation for at pege dem på de samme Brevo-credentials, eller slå deres egen mailer fra.

Skiftet til Mail Pilot betød, at mails kommer fra en anden adresse. Afsenderadressen, der er konfigureret i Mail Pilot, overstyrer den, WordPress ellers ville bruge. Vil du beholde en “Fra”-adresse pr. plugin, så sørg for, at pluginet sætter From:-headeren eksplicit ved kaldet til wp_mail(); ellers opdater den globale afsender under Mail Pilot → Indstillinger til den ønskede værdi.

Last updated on