Salta ai contenuti

Email

Invia email transazionali dalla tua app. Gestisci le identità mittente e monitora le consegne da Admin > Email della tua app.

Ogni app Proyecta può inviare email transazionali. Verifica un’identità mittente, poi invia dal codice della tua app — nessun account separato presso un provider email è richiesto.

Apri Admin > Email nel builder — oppure /admin sul tuo sito pubblicato. È composta da due parti:

Parte A cosa serve
Identities Aggiungere e verificare indirizzi email o domini mittente
Sent Sfogliare le email inviate con lo stato di consegna (inviata, consegnata, respinta, ecc.)

Puoi aggiungere una nuova identità mittente e consultare lo storico delle consegne — tutto senza scrivere codice.

  1. Crea e verifica un’identità mittente (un indirizzo email o un dominio) nel pannello admin
  2. Invia — dalla tua app con useSendEmail(), oppure dal pannello admin per le campagne

Invia da un indirizzo condiviso (@proyectamail.com)

Sezione intitolata “Invia da un indirizzo condiviso (@proyectamail.com)”

Il percorso più semplice è richiedere un singolo indirizzo sul dominio di invio condiviso di Proyecta, @proyectamail.com. Si verifica nel momento stesso in cui lo crei — la piattaforma è già proprietaria di quel dominio, quindi non devi configurare alcun record DNS.

Puoi farlo dalla sezione Emails del pannello admin della tua app: inserisci l’indirizzo che vuoi e sarà subito pronto.

Gli indirizzi singoli funzionano solo su @proyectamail.com. Richiederne uno su un altro dominio (ad es. hello@myapp.com) viene rifiutato — per inviare dal tuo dominio, devi verificare l’intero dominio (vedi sotto). Ogni indirizzo condiviso è riservato globalmente, quindi nessuna app può usare lo stesso mittente @proyectamail.com.

Per inviare dal tuo dominio — da qualsiasi indirizzo su di esso (hello@, support@, noreply@, ecc.) — devi verificare l’intero dominio. A differenza di un indirizzo @proyectamail.com condiviso, un dominio personalizzato non si verifica istantaneamente.

Aggiungi il dominio nella stessa sezione Emails. Viene registrato presso il provider email e ti vengono mostrati i record SPF, DKIM e DMARC da pubblicare nel tuo DNS. Il mittente rimane in stato pending finché i record non si propagano e il provider li conferma, dopodiché passa a verified — usa il pulsante di verifica nuovamente dopo aver pubblicato i record.

La verifica del dominio tramite DNS è completamente implementata — i record vengono generati dal provider e ogni nuovo controllo ne aggiorna lo stato.

Dietro le quinte: Proyecta autentica il tuo dominio di invio e recapita i messaggi attraverso Amazon SES. Non dovrai mai gestire un account Amazon SES.

Dalle pagine della tua app puoi inviare usando il hook useSendEmail(). Scegli un template e passi le variabili; la piattaforma renderizza il messaggio nella lingua dell’app e lo invia:

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

Nota cosa non devi passare: un destinatario, un oggetto o dell’HTML. Ogni template dichiara il proprio pubblico:

  • self (conferme di prenotazione/ordine, benvenuto) → l’indirizzo dell’utente attualmente connesso, ricavato dalla sua sessione.
  • owner (owner_alert) → gli amministratori della tua app.

Entrambi richiedono una sessione attiva. Questa è una scelta deliberata, non una limitazione: la chiave pubblica che autentica la chiamata è inclusa nel sorgente della pagina, quindi un invio a destinatario arbitrario permetterebbe a chiunque di usare la tua app come relay di spam. Per notificare te stesso da un visitatore anonimo, usa un form — i form inoltrano già automaticamente le submission al proprietario e inviano una conferma al mittente, ed è un percorso che non può essere falsificato dal browser.

Gli errori arrivano come PlatformApiError: 401 (sessione richiesta), 403 (template non abilitato per questa app), 429 (limite di frequenza raggiunto — mostra il messaggio e offri la possibilità di riprovare), 422 (nessun indirizzo registrato).

La scheda Sent nel pannello admin elenca tutto ciò che la tua app ha inviato con l’ultimo evento di consegna — consegnata, aperta, cliccata, respinta, segnalata come spam — quindi normalmente non hai bisogno di scrivere codice per questo.

Ogni voce riporta il proprio stato — sent, delivered, opened, clicked, bounced o complained — e puoi aprire qualsiasi messaggio per leggere l’HTML e il testo esatti che sono stati inviati. Se le consegne falliscono, questo è il primo posto dove guardare.

Non è necessario scrivere tutto a mano:

  • "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."
  • L’indirizzo from deve essere un’identità verificata. Inviare con un indirizzo non verificato restituisce un errore.
  • Si applicano limiti mensili in base al piano Proyecta scelto.
  • Template editor — progetta i template transazionali visivamente nel builder
  • Endpoint di invio massivo/batch per mailing di massa