Skip to Content

Mail Pilot

Mail Pilot înlocuiește funcția de mail implicită din WordPress cu serviciul de email tranzacțional Brevo. Trimite fiecare mesaj prin API-ul HTTP al Brevo (cu fallback automat pe SMTP), înregistrează fiecare trimitere într-un log căutabil și verifică livrarea în timp real prin webhook-uri. Rezultatul este email tranzacțional fiabil și vizibilitate completă asupra a ceea ce livrează efectiv site-ul tău.

Plugin-ul este gândit pentru proprietari de site-uri și administratori care trebuie să fie siguri că password reset-urile, confirmările de comandă, răspunsurile de la formulare de contact, notificările WooCommerce și restul mail-urilor de sistem ajung în inbox. Nu adaugă funcționalități de marketing sau campanii: se concentrează pe stratul tranzacțional al WordPress.

Puncte forte

  • Livrare prin API Brevo. Toate apelurile wp_mail() sunt rutate prin API-ul tranzacțional Brevo, ceea ce îmbunătățește deliverability-ul față de funcția implicită PHP mail().
  • Fallback automat pe SMTP. Dacă apelul API nu poate fi finalizat (de exemplu, din cauza unei probleme temporare de rețea), mesajul este reîncercat prin Brevo SMTP, astfel încât mail-urile să nu se piardă.
  • Log de email-uri căutabil. Fiecare mesaj de ieșire este stocat cu destinatar, subiect, body, headere, status și timestamp. Log-ul poate fi filtrat după status și căutat după destinatar sau subiect.
  • Tracking open și click. Când e activ, Brevo injectează un pixel de tracking și rescrie linkurile, astfel încât plugin-ul să poată înregistra open-urile și click-urile pentru fiecare mesaj.
  • Verificare a livrării prin webhook-uri. Brevo retrimite evenimente delivered, hard bounce, soft bounce, blocked, deferred și spam complaint, pe care Mail Pilot le reflectă în intrarea de log.
  • Curățare automată. Un task cron WordPress programat șterge rândurile vechi de log conform unei perioade de retenție configurabile, ca baza de date să nu crească la nesfârșit.
  • Prevenirea conflictelor. Mail Pilot detectează alte plugin-uri SMTP (în special WP Mail SMTP) și avertizează când ambele ar suprascrie wp_mail(), prevenind mail-uri duplicate sau pierdute.
  • Retrimitere și test. Orice mesaj logat poate fi retrimis din pagina de admin, iar un tool integrat de test email verifică configurarea.

Cerințe

  • WordPress 6.0 sau mai nou.
  • PHP 7.4 sau mai nou (recomandat PHP 8.1+).
  • Un cont Brevo (planul gratuit este suficient pentru volume tipice de tranzacțional).
  • O adresă de expeditor verificată sau un domeniu de trimitere autentificat în Brevo.
  • Acces HTTPS de ieșire de pe serverul WordPress la api.brevo.com pe portul 443, plus portul 587 pentru fallback-ul SMTP.
  • Cron WordPress (wp-cron) activ sau un task de cron de sistem care apelează wp-cron.php, pentru ca job-ul de cleanup să ruleze la intervalul setat.

Instalare

  1. Descarcă cel mai recent mail-pilot.zip din contul tău sau de pe pagina de descărcare a plugin-ului.
  2. În adminul WordPress, deschide Plugins → Add New → Upload Plugin.
  3. Alege fișierul ZIP, apasă Install Now, apoi Activate Plugin.
  4. După activare apare o intrare nouă sub Mail Pilot → Settings. Plugin-ul adaugă și un meniu de top-level Mail Pilot care dă acces direct la ecranele de log și statistici.

La activare, Mail Pilot își creează tabelul propriu de bază de date ({prefix}_mail_pilot_logs) folosit pentru log-ul de mail. Niciun email nu este interceptat până când cheia API nu este salvată și integrarea nu este activă.

Configurare

Configurarea este împărțită în trei zone: credențialele Brevo, identitatea de expeditor și opțiunile operaționale pentru logging, tracking și retenție. Toate setările sunt sub Mail Pilot → Settings.

1. Creează un cont Brevo și o cheie API

  1. Înregistrează-te la brevo.com  dacă nu ai încă un cont. Planul gratuit permite un volum generos de email tranzacțional pe zi, suficient pentru majoritatea site-urilor mici și medii.
  2. Loghează-te în dashboard-ul Brevo.
  3. Deschide meniul de user din colțul dreapta sus și alege SMTP & API.
  4. Selectează tabul API Keys și apasă Generate a new API key.
  5. Dă-i cheii un nume recognoscibil (de exemplu wordpress-mail-pilot) și copiază valoarea generată. Brevo afișează secretul o singură dată; păstrează-l într-un loc sigur.

2. Verifică un expeditor

Brevo refuză să trimită mesaje de la un expeditor neverificat. Înainte să salvezi configurarea în WordPress, asigură-te că fie adresa de email de expeditor, fie întreg domeniul este verificat în Brevo:

  • Pentru o singură adresă, deschide Senders, Domains & Dedicated IPs → Senders în Brevo, adaugă adresa și confirm-o prin email-ul pe care ți-l trimite Brevo.
  • Pentru un domeniu, deschide Senders, Domains & Dedicated IPs → Domains și urmează wizard-ul care îți cere să adaugi înregistrările DNS de SPF, DKIM și DMARC. Autentificarea de domeniu oferă cel mai bun deliverability și este puternic recomandată pentru site-urile de producție.

3. Introdu credențialele în WordPress

  1. Deschide Mail Pilot → Settings în adminul WordPress. Pagina este împărțită în trei taburi — General, Logging și Advanced — dar credențialele și mailer-ul de test stau toate în tabul General.
  2. (Opțional) În cardul License de sus, lipește cheia PILOT-XXXX-XXXX-XXXX-XXXX și apasă Verify & Save ca să activezi update-urile automate ale plugin-ului din feed-ul de release-uri GitHub.
  3. În cardul Connection, lasă Mail Provider pe Brevo (singurul furnizor livrat momentan).
  4. În cardul Brevo Settings, lipește cheia API în câmpul API Key și apasă Test Connection pentru a valida credențialele față de API-ul Brevo.
  5. În cardul Sender, setează:
    • From Email pe adresa verificată din pasul anterior și bifează Force From Email ca să suprascrii orice expeditor setat per email de alte plugin-uri.
    • From Name pe eticheta care trebuie să apară ca autor al mesajelor de ieșire și bifează Force From Name ca să bată și suprascrierile per email.
  6. Apasă Save Settings.

Dacă vrei să trimiți rapid un email de verificare, cardul Test Email din partea de jos a tabului General expune un câmp Send To și un buton Send Test.

Mail Pilot — Settings (tabul General)
Mail Pilot Settings — tabul General, cu cardurile License, Connection, Brevo Settings, Sender și Test Email.

4. Trimite un email de test

Sub secțiunea cu credențiale, formularul Send test email te lasă să verifici configurarea end-to-end:

  1. Introdu adresa destinație (inbox-ul propriu este o alegere bună).
  2. Apasă Send test email.
  3. Plugin-ul îți arată imediat un mesaj de succes sau eroare, iar mesajul apare în log în câteva secunde.

Dacă mesajul de test ajunge în inbox, integrarea API funcționează. Dacă nu sosește în câteva minute, deschide intrarea de log și verifică detaliile răspunsului returnat de Brevo, apoi consultă secțiunea Depanare de mai jos.

5. Configurează webhook-ul de livrare

Evenimentele de open, click și livrare sunt trimise înapoi către WordPress de către Brevo printr-un webhook. Configurarea lui este opțională, dar recomandată, fiindcă fără el log-ul îți va arăta doar că mesajul a fost acceptat de Brevo, nu și dacă a fost efectiv livrat, respins sau deschis.

  1. În Mail Pilot, copiază Webhook URL afișat în pagina de setări. Pointează spre endpoint-ul REST https://<your-site>/wp-json/mail-pilot/v1/webhook.
  2. În dashboard-ul Brevo, deschide Transactional → Settings → Webhook și apasă Add a new webhook.
  3. Lipește URL-ul în câmpul URL to call.
  4. Selectează evenimentele de raportat. Setul recomandat este:
    • Sent
    • Delivered
    • Hard bounce
    • Soft bounce
    • Blocked
    • Spam (complaint)
    • Opened (doar dacă tracking-ul de open este activ)
    • Clicked (doar dacă tracking-ul de click este activ)
  5. Salvează webhook-ul.

Brevo va începe imediat să trimită actualizări de status către WordPress. Tabelul de log refreshuiește coloana de status pe măsură ce ajung evenimentele.

6. Tracking, retenție și cleanup

Taburile Logging și Advanced din pagina de Settings expun opțiunile operaționale:

  • Activează tracking-ul de open. Când e activ, Brevo înglobează un pixel de tracking 1x1 în body-ul HTML. Pixelul este încărcat de clientul de mail al destinatarului, ceea ce contează ca open.
  • Activează tracking-ul de click. Când e activ, linkurile din email-urile HTML sunt rescrise să pointeze către un redirector Brevo care înregistrează click-ul și apoi îl trimite pe utilizator la URL-ul original.
  • Retenție log (zile). Numărul de zile după care intrările de log sunt șterse de task-ul de cleanup. Default-ul este 30 de zile. Setează 0 ca să păstrezi intrările pentru totdeauna (nerecomandat pe site-uri aglomerate).
  • Program cleanup. Frecvența evenimentului cron WordPress care taie log-ul. Default-ul este zilnic.
  • Loghează body-ul mesajului. Când e oprit, se stochează doar metadatele (destinatar, subiect, status), ceea ce reduce dimensiunea bazei de date și evită stocarea body-ului unor email-uri sensibile, cum ar fi password reset-urile.

Apasă Save Changes pentru a aplica.

Utilizare

Odată ce integrarea este activă, Mail Pilot lucrează transparent. Fiecare apel wp_mail() făcut de WordPress core, de teme sau de plugin-uri este interceptat și redirecționat prin Brevo. Nu este necesară nicio modificare de cod în WooCommerce, Contact Form 7, WPForms, BuddyPress sau în orice alt plugin care folosește API-ul standard de mail WordPress.

Dashboard-ul

Meniul de top-level Mail Pilot deschide un dashboard care rezumă activitatea de mail pentru perioada selectată. Un range picker în partea de sus comută între 7 zile, 14 zile și 30 zile, iar șase carduri KPI sus afișează Total trimise, Livrate (cu procent de livrare), Eșuate (cu procent de eșec), Respinse, Open-uri (cu procent de open) și Click-uri. Cifrele se actualizează pe măsură ce ajung evenimentele de webhook.

Mail Pilot — Dashboard
Mail Pilot Dashboard — carduri KPI, grafice Email Volume / Delivery Status / Opens & Clicks / Top Sources / Sending Hours și cardul Brevo Account cu soldul de credite.

Sub KPI-uri, dashboard-ul randează cinci grafice live alimentate de log-ul propriu al plugin-ului:

  • Email Volume — area stacked zilnic de mesaje delivered, blocked și bounced.
  • Delivery Status — breakdown doughnut peste aceleași trei bucket-uri pentru perioada selectată.
  • Opens & Clicks — line chart zilnic cu open-uri și click-uri unice.
  • Top Sources — bar chart orizontal cu plugin-urile/temele care generează cele mai multe email-uri, derivate din call site-ul înregistrat la fiecare trimitere.
  • Sending Hours — histogramă orară a momentului în care email-urile ies din site versus când le dispatch-uiește Brevo, util pentru a identifica furtuni de cron.

Un card Brevo Account la final preia statusul live al contului tău Brevo: email-ul contului conectat, soldul curent de credite și contoare pentru Requests, Delivered, Opens, Clicks, Hard bounces, Soft bounces, Blocked și Spam reports pe toate canalele de trimitere (API, SMTP relay și software extern).

Log-ul de email

Mail Pilot — Email Log
Email Log — tabel paginat cu fiecare mesaj procesat de plugin, cu acțiuni bulk, filtre pe status / căutare și acțiune View per rând.

Ecranul Email Log (Mail Pilot → Email Log) listează fiecare mesaj procesat de plugin, cel mai recent primul, cu un dropdown de acțiuni bulk, un filtru de status, un câmp de căutare în text liber și o acțiune View per rând. Fiecare rând afișează:

  • Adresa destinatarului (sau prima adresă dacă sunt mai multe).
  • Subiectul.
  • Statusul curent: queued, sent, delivered, opened, clicked, soft-bounce, hard-bounce, blocked, spam sau error.
  • Timestamp-ul ultimei schimbări de status.
  • ID-ul mesajului Brevo (folosit pentru a corela intrarea cu log-urile proprii Brevo).

Folosește câmpul de căutare de deasupra tabelului pentru a filtra după destinatar sau subiect, sau dropdown-ul de status pentru a afișa doar mesajele picate. Click pe un rând deschide vizualizarea de detaliu, care expune:

  • Headerele complete și body-ul mesajului (dacă logging-ul de body este activ).
  • Lista destinatarilor (To, Cc, Bcc).
  • Fiecare eveniment urmărit cu timestamp-ul lui.
  • Răspunsul Brevo brut, util pentru request-uri de suport.

Din vizualizarea de detaliu poți apăsa Resend pentru a reîncerca mesajul neschimbat, sau Copy ca să-l folosești ca punct de pornire pentru un mesaj de test nou.

Widget pe dashboard-ul WordPress

Mail Pilot înregistrează un widget pe ecranul Dashboard standard (pagina pe care WordPress o deschide la login). Widget-ul oglindește dashboard-ul propriu al plugin-ului dintr-o privire, ca să poți observa anomaliile de livrare fără să intri în meniul Mail Pilot.

Mail Pilot — widget pe dashboard-ul WordPress
Widget-ul Mail Pilot pe Dashboard-ul WordPress — selector de perioadă, line chart zilnic Delivered / Failed / Bounced și footer-ul Brevo cu soldul de credite și contoare live.

Widget-ul expune un range picker Ultimele 7 / 14 / 30 zile, un line chart Email Volume (Delivered / Failed / Bounced) și un footer Brevo cu soldul curent de credite și contoare pentru Requests, Delivered, Failed, Bounced, Opens și Clicks. Un link View Full Log în header deschide pagina Email Log.

Widget-ul este opt-in: pornește-l sau oprește-l din Mail Pilot → Settings → Advanced → Dashboard Widget.

Lucrul cu alte plugin-uri

Mail Pilot înlocuiește implementarea implicită a wp_mail() cu propria extensie PHPMailer. În consecință, este incompatibil cu orice alt plugin care face același lucru, inclusiv WP Mail SMTP, Easy WP SMTP, Post SMTP, FluentSMTP și unelte similare. Plugin-ul îl detectează pe cel mai uzual și afișează un admin notice care îți cere să alegi un singur mailer. Calea recomandată este să dezactivezi celălalt plugin SMTP și să-i imporți credențialele în Mail Pilot dacă e nevoie.

WooCommerce, BuddyPress, WPForms, Contact Form 7, Easy Digital Downloads și notificările din WordPress core continuă să funcționeze fără nicio modificare: toate trec prin wp_mail() și sunt deci capturate automat de Mail Pilot.

FAQ

Mail Pilot înlocuiește doar email-urile tranzacționale sau și campaniile de marketing? Gestionează doar email tranzacțional, adică tot ce este trimis prin funcția wp_mail() din WordPress. Campaniile de marketing create în dashboard-ul Brevo sunt gestionate acolo și nu sunt vizibile în log-ul Mail Pilot.

Trebuie să plătesc pentru Brevo? Nu. Planul gratuit Brevo include momentan o cotă zilnică de email tranzacțional care acoperă majoritatea site-urilor mici și medii. Dacă volumul îți crește, poți face upgrade pe un plan plătit din dashboard-ul Brevo, fără să reinstalezi plugin-ul.

Pot folosi WP Mail SMTP și Mail Pilot în același timp? Nu. Doar un singur plugin poate suprascrie wp_mail(); rularea a două în același timp duce la trimiteri duplicate, mesaje pierdute sau erori PHP. Dezactivează celălalt plugin SMTP înainte să activezi Mail Pilot.

Se stochează body-urile mesajelor în baza de date? Doar dacă Loghează body-ul mesajului este activ în setări. Cu opțiunea oprită, log-ul păstrează destinatarul, subiectul, headerele și statusul, dar nu și body-ul, ceea ce e preferabil când site-urile trimit password reset-uri sau alt conținut sensibil.

Va funcționa tracking-ul de open cu toate clienții de email? Tracking-ul de open depinde de încărcarea imaginilor remote de către destinatar în clientul lui de mail. Multe clienți corporate și Apple Mail Privacy Protection blochează sau pre-fetch-uiesc pixelul, deci rata de open ar trebui interpretată ca o limită inferioară (sau superioară), nu ca o cifră exactă.

Suportă plugin-ul mai multe adrese de expeditor? Expeditorul default este configurat global. Plugin-urile sau codul care trimit un header From: explicit către wp_mail() vor folosi acea adresă atâta timp cât este verificată în Brevo. Adresele neverificate sunt respinse de API.

Pot exporta log-ul? Da. Ecranul de log are un buton Export CSV care exportă vizualizarea filtrată curent. Exportul conține destinatar, subiect, status, timestamp-uri și ID-ul mesajului Brevo.

Unde sunt stocate datele? Log-urile sunt stocate într-un tabel custom numit {prefix}_mail_pilot_logs în baza de date WordPress. Setările trăiesc în tabelul standard de opțiuni WordPress. Nu se trimite nimic către terți, în afară de Brevo.

Este Mail Pilot compatibil cu multisite? Da. Fiecare site dintr-o rețea multisite își păstrează propriile setări și propriul tabel de log și folosește propria cheie API Brevo. Plugin-ul poate fi activat și la nivel de rețea.

Depanare

Pagina de setări arată „API key rejected”. Re-copiază cheia din Brevo, asigurându-te că nu sunt spații înainte sau după. Confirmă faptul că cheia nu a fost revocată sau restrânsă în dashboard-ul Brevo. Cheile create pentru API-ul v2 pot să nu meargă; generează o cheie v3 din tabul API Keys.

Email-urile de test sunt raportate ca trimise, dar nu sosesc niciodată. Deschide intrarea de log pentru mesajul de test și verifică secțiunile Status și Brevo response. Cele mai obișnuite cazuri sunt:

  • Destinatarul este pe lista de suprimare a Brevo (un bounce anterior sau un unsubscribe). Șterge adresa din Contacts → Suppressed contacts în Brevo.
  • Expeditorul sau domeniul de trimitere nu este verificat, deci Brevo acceptă cererea, dar blochează mesajul.
  • Furnizorul de mail al destinatarului a marcat mesajul ca spam. Verifică folderul de spam și revizuiește SPF, DKIM și DMARC pentru domeniul de trimitere.

Evenimentele de webhook nu ajung niciodată în log. Verifică dacă URL-ul de webhook salvat în Brevo se potrivește cu cel afișat în pagina de setări Mail Pilot, inclusiv protocolul (https) și orice subdirector al instalării tale. WordPress trebuie să fie accesibil din internetul public; webhook-urile nu pot fi livrate către un site aflat în spatele unui VPN sau către localhost. Dacă folosești un plugin de securitate sau un WAF, asigură-te că request-urile către /wp-json/mail-pilot/v1/webhook nu sunt blocate.

Intrările vechi de log nu sunt șterse. Cleanup-ul este declanșat de WordPress cron. Dacă site-ul tău are trafic foarte scăzut, este posibil ca cron-ul să nu se declanșeze destul de des; configurează un task de cron de sistem care apelează wp-cron.php o dată pe oră. Poți declanșa și un cleanup manual cu butonul Run cleanup now din partea de jos a paginii de setări.

Email-urile unui anumit plugin nu sunt rutate prin Brevo. Verifică dacă plugin-ul respectiv trimite mail-uri prin propria implementare SMTP în loc de wp_mail(). Plugin-urile care ocolesc wp_mail() nu pot fi interceptate; consultă documentația lor ca să le pointezi către aceleași credențiale Brevo sau dezactivează-le mailer-ul custom.

Trecerea la Mail Pilot a făcut ca email-urile să vină de la o altă adresă. Adresa de expeditor configurată în Mail Pilot suprascrie pe cea pe care WordPress ar fi folosit-o în mod normal. Pentru a păstra o adresă „From” per plugin, asigură-te că acel plugin setează explicit header-ul From: când apelează wp_mail(); altfel actualizează expeditorul global din Mail Pilot → Settings la valoarea dorită.

Last updated on