Sari la conținut

Email

Trimite emailuri tranzacționale din aplicația ta. Gestionează identitățile de expeditor și urmărește livrarea din Admin > Email al aplicației tale.

Orice aplicație Proyecta poate trimite email tranzacțional. Verifică o identitate de expeditor, apoi trimite din codul aplicației tale — fără a fi nevoie de un cont separat la un furnizor de email.

Deschide Admin > Email în builder — sau /admin pe site-ul tău publicat. Are două părți:

Parte La ce folosește
Identities Adaugă și verifică adrese de email sau domenii ca expeditori
Sent Răsfoiește emailurile trimise cu statusul livrării (sent, delivered, bounced, etc.)

Poți adăuga o nouă identitate de expeditor și răsfoi istoricul livrărilor de email — totul fără să scrii cod.

  1. Creează și verifică o identitate de expeditor (o adresă de email sau un domeniu) în panoul tău de administrare
  2. Trimite — din aplicația ta cu useSendEmail(), sau din panoul de administrare pentru campanii

Cea mai simplă cale este să revendici o singură adresă pe domeniul de trimitere partajat al Proyecta, @proyectamail.com. Se verifică instant în momentul în care o creezi — platforma deține deja acel domeniu, deci nu trebuie să configurezi niciun record DNS.

Faci asta din secțiunea Emails a panoului de administrare al aplicației tale: introdu adresa dorită și este gata imediat.

Adresele individuale funcționează doar pe @proyectamail.com. Solicitarea uneia pe alt domeniu (de ex. hello@myapp.com) este respinsă — pentru a trimite de pe propriul tău domeniu, verifică întreg domeniul (vezi mai jos). Fiecare adresă partajată este rezervată global, deci nicio altă aplicație nu poate trimite ca același expeditor @proyectamail.com.

Pentru a trimite de pe propriul tău domeniu — de pe orice adresă a acestuia (hello@, support@, noreply@, etc.) — verifică întreg domeniul. Spre deosebire de o adresă partajată @proyectamail.com, un domeniu personalizat nu se verifică instant.

Adaugă domeniul din aceeași secțiune Emails. Acesta se înregistrează la furnizorul de email și îți afișează recordurile SPF, DKIM și DMARC pe care trebuie să le publici în DNS-ul tău. Expeditorul rămâne în starea pending până când acele recorduri se propagă și furnizorul le confirmă, după care trece la verified — folosește butonul de reverificare după ce le-ai publicat.

Verificarea domeniului prin DNS este complet implementată — recordurile sunt generate de furnizor, iar fiecare reverificare le interoghează statusul.

Sub capotă: Proyecta îți autentifică domeniul de trimitere la furnizorul de identități de email (Resend) și îți livrează mesajele prin furnizorul tranzacțional (SendGrid). Nu trebuie să gestionezi un cont la niciunul dintre aceștia.

Din paginile aplicației tale, trimiți cu hook-ul useSendEmail(). Alegi un template și transmiți variabile; platforma redă mesajul în limba aplicației și îl trimite:

import { useSendEmail } from '@/hooks/useEmail.ts';
function ConfirmButton({ booking }) {
const { send, isPending, error } = useSendEmail();
return (
<button
disabled={isPending}
onClick={() =>
send({
template: 'booking_confirmation',
variables: { date: booking.date, service: booking.service },
})
}
>
Email me the details
</button>
);
}

Observă ce nu transmiți: un destinatar, un subiect sau HTML. Fiecare template își declară propriul public:

  • self (confirmări rezervări/comenzi, bun venit) → adresa proprie a utilizatorului autentificat, preluată din sesiunea sa.
  • owner (owner_alert) → administratorii aplicației tale.

Ambele necesită o sesiune activă. Acest lucru este intenționat, nu o omisiune: cheia publică care autentifică apelul se regăsește în sursa paginii tale, deci o trimitere cu destinatar arbitrar ar permite oricui să folosească aplicația ta ca relay de spam. Pentru a te notifica pe tine însuți în urma unei vizite anonime, folosește un formular — trimiterile de formulare trimit deja email proprietarului și confirmă automat expeditorului, iar acea cale nu poate fi falsificată din browser.

Erorile apar ca PlatformApiError: 401 (necesită sesiune), 403 (template-ul nu este activat pentru această aplicație), 429 (limită de rată depășită — afișează mesajul și oferă opțiunea de reîncercare), 422 (nicio adresă înregistrată).

Tab-ul Sent din panoul tău de administrare listează tot ce a trimis aplicația ta, cu ultimul eveniment de livrare — delivered, opened, clicked, bounced, complained — deci de obicei nu ai nevoie de cod pentru asta.

Fiecare intrare poartă statusul său — sent, delivered, opened, clicked, bounced sau complained — și poți deschide orice mesaj pentru a citi exact HTML-ul și textul care au fost trimise. Dacă livrările eșuează, acesta este primul loc unde trebuie să cauți.

Nu trebuie să scrii asta de mână:

  • "Verify hello@myapp.com as a sending identity."
  • "Email the customer a confirmation after they finish booking."
  • "After a successful checkout, send the customer their receipt."
  • "Show me the last 20 emails we've sent and whether they bounced."
  • Adresa from trebuie să fie o identitate verificată. Trimiterea cu o adresă neverificată returnează o eroare.
  • Se aplică limite lunare în funcție de planul tău Proyecta.
  • Editor de template-uri — creează vizual template-uri tranzacționale în builder
  • Endpoint de trimitere bulk/batch pentru emailuri în masă