Zum Inhalt springen

E-Mail

Sende transaktionale E-Mails aus deiner App. Verwalte Absenderidentitäten und verfolge die Zustellung unter Admin > Email in deiner App.

Jede Proyecta-App kann transaktionale E-Mails versenden. Verifiziere eine Absenderidentität und sende dann aus deinem App-Code heraus – kein separates E-Mail-Provider-Konto erforderlich.

Öffne Admin > Email im Builder – oder /admin auf deiner veröffentlichten Website. Er besteht aus zwei Teilen:

Teil Wofür er gedacht ist
Identities Absender-E-Mail-Adressen oder Domains hinzufügen und verifizieren
Sent Gesendete E-Mails mit Zustellungsstatus durchsuchen (gesendet, zugestellt, gebounced usw.)

Du kannst eine neue Absenderidentität hinzufügen und deine E-Mail-Zustellungshistorie einsehen – ganz ohne Code zu schreiben.

  1. Erstelle und verifiziere eine Absenderidentität (eine E-Mail-Adresse oder eine Domain) in deinem Admin-Panel
  2. Sende – aus deiner App mit useSendEmail() oder über das Admin-Panel für Kampagnen

Von einer gemeinsamen Adresse senden (@proyectamail.com)

Abschnitt betitelt „Von einer gemeinsamen Adresse senden (@proyectamail.com)“

Der einfachste Weg ist, eine einzelne Adresse auf Proyectas gemeinsamer Versand-Domain @proyectamail.com zu beanspruchen. Sie wird sofort beim Erstellen verifiziert – die Plattform besitzt diese Domain bereits, sodass du keine DNS-Einträge einrichten musst.

Das machst du im Bereich Emails des Admin-Panels deiner App: Gib die gewünschte Adresse ein, und sie ist sofort einsatzbereit.

Einzelne Adressen funktionieren nur mit @proyectamail.com. Eine Anfrage für eine andere Domain (z. B. hello@myapp.com) wird abgelehnt – um von deiner eigenen Domain zu senden, verifiziere stattdessen die gesamte Domain (siehe unten). Jede gemeinsame Adresse ist global reserviert, sodass keine zwei Apps denselben @proyectamail.com-Absender verwenden können.

Um von deiner eigenen Domain zu senden – von jeder beliebigen Adresse darauf (hello@, support@, noreply@ usw.) – verifiziere die gesamte Domain. Anders als eine gemeinsame @proyectamail.com-Adresse wird eine benutzerdefinierte Domain nicht sofort verifiziert.

Füge die Domain im selben Emails-Bereich hinzu. Sie wird beim E-Mail-Provider registriert und zeigt dir die SPF-, DKIM- und DMARC-Einträge an, die du in deinem DNS veröffentlichen musst. Der Absender bleibt auf pending, bis sich diese Einträge propagiert haben und der Provider sie bestätigt, dann wechselt er zu verified – verwende den Erneut-prüfen-Button, nachdem du sie veröffentlicht hast.

DNS-basierte Domain-Verifizierung ist vollständig implementiert – die Einträge werden vom Provider generiert, und bei jeder erneuten Prüfung wird ihr Status neu abgefragt.

Im Hintergrund: Proyecta authentifiziert deine Versand-Domain bei seinem E-Mail-Identitätsprovider (Resend) und stellt deine Nachrichten über seinen transaktionalen Provider (SendGrid) zu. Du verwaltest bei keinem der beiden ein eigenes Konto.

Aus den Seiten deiner App heraus sendest du mit dem useSendEmail()-Hook. Du wählst ein Template und übergibst Variablen; die Plattform rendert die Nachricht in der Sprache der App und sendet sie:

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>
);
}

Beachte, was du nicht übergibst: einen Empfänger, einen Betreff oder HTML. Jedes Template deklariert seine eigene Zielgruppe:

  • self (Buchungs-/Bestellbestätigungen, Willkommensnachrichten) → die eigene Adresse des eingeloggten Nutzers, die aus dessen Session entnommen wird.
  • owner (owner_alert) → die Admins deiner App.

Beide erfordern eine aktive Session. Das ist bewusst so gestaltet und keine Lücke: Der öffentliche Schlüssel, der den Aufruf authentifiziert, ist in deinem Seitenquellcode enthalten – ein Versand an beliebige Empfänger würde es jedem ermöglichen, deine App als Spam-Relay zu missbrauchen. Um dich selbst bei einem anonymen Besucher zu benachrichtigen, verwende ein Formular – Formularübermittlungen senden automatisch eine E-Mail an den Inhaber und bestätigen dies dem Absender, und dieser Weg kann nicht über den Browser gefälscht werden.

Fehler kommen als PlatformApiError an: 401 (Session erforderlich), 403 (Template für diese App nicht aktiviert), 429 (Rate Limit erreicht – zeige die Meldung an und biete einen erneuten Versuch an), 422 (keine Adresse hinterlegt).

Der Tab Sent in deinem Admin-Panel listet alles auf, was deine App gesendet hat, zusammen mit dem aktuellen Zustellungsereignis – zugestellt, geöffnet, geklickt, gebounced, als Spam markiert – sodass du dafür in der Regel keinen Code benötigst.

Jeder Eintrag trägt seinen Status – sent, delivered, opened, clicked, bounced oder complained – und du kannst jede Nachricht öffnen, um das genaue HTML und den Text zu lesen, der versendet wurde. Wenn Zustellungen fehlschlagen, ist dies die erste Anlaufstelle.

Du musst das nicht von Hand schreiben:

  • "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."
  • Die from-Adresse muss eine verifizierte Identität sein. Das Senden mit einer nicht verifizierten Adresse gibt einen Fehler zurück.
  • Monatliche Limits gelten je nach deinem Proyecta-Plan.
  • Template-Editor – transaktionale Templates visuell im Builder gestalten
  • Bulk/Batch-Send-Endpoint für Massenmailings