There is no settings panel or configuration step to complete before adding email to your app. You add email by describing what you want in the chat — the AI generates the backend code and wires up the delivery infrastructure automatically.
Email sending requires a Plus or Pro plan.
Adding email to your app
Open the chat for your project and describe the email behavior you want. Be specific about what triggers the email and what it should contain. Some examples:
- "Send a confirmation email to the user when they place an order"
- "Add email verification when users register — they should have to confirm their address before they can post"
- "Let admins send a newsletter to all subscribed users, with an unsubscribe link"
- "Send a calendar invite to all attendees when a meeting is booked"
The AI identifies which email capability fits your request, generates the backend logic, and deploys it with the next build. You do not need to configure an email provider or supply API keys.
If your project uses an external domain (one you connected from your own registrar), you must also add the mail DNS records that Caffeine provides during domain setup. Without those records, emails will not be delivered. See Connecting a Domain You Already Own for details on the required DNS records.
What gets built
Depending on what you ask for, the AI selects the appropriate email capability and generates the corresponding backend code:
For transactional emails (confirmations, notifications, reminders): the AI generates a backend function your app calls whenever that event occurs. Each recipient receives their own individual message.
For email verification: the AI adds a verification flow to your app. A unique link is sent to the user's address; clicking it marks the address as verified. You can then make features conditional on verification status.
For marketing emails and newsletters: the AI builds a topic-based subscription system. Users can subscribe and unsubscribe per topic. Only users with a verified email address who are subscribed to a topic receive messages for that topic. Every marketing email must include an unsubscribe link, which the system generates automatically.
For calendar invitations: the AI generates an event management system within your app. Events have attendees, a start and end time, a location, and a description. The system sends standard iCalendar (.ics) invitations that recipients can add to any calendar application. You can also send updates or cancellations when event details change.
For raw group emails (to/cc/bcc): the AI generates a function for sending a single message to a defined list of recipients, with full to, cc, and bcc support.
Requesting changes
If you want to adjust how email works in your app — change the content of a message, add a new type of email, or modify the trigger — describe it in the chat the same way you described the original request. The AI updates the code with the next build.
Testing that emails are being sent
Deploy your app and trigger the relevant action (place an order, register a user, book a meeting). The email should arrive within a few seconds. If you are testing with your own address, check your spam folder if the message doesn't appear in your inbox.
There is no sandbox or preview mode — emails are sent to real addresses when you test against your deployed app.
Sender address
Every outbound email has a sender address in the format prefix@your-app-domain. The domain part is your project's domain — whatever address your app uses (the default Caffeine domain, a purchased custom domain, or an external domain you connected). The prefix is chosen by the AI when it generates the email code.
By default, the AI uses no-reply as the prefix, so emails come from an address like no-reply@mydomain.com. Different email types in the same app can use different prefixes — for example, no-reply for transactional emails and events for calendar invitations.
All sender addresses are outbound only — there is no inbox behind them. Replies from recipients are not delivered anywhere. Regardless of the prefix you choose, every address functions as a no-reply address. If you need recipients to contact you, include a link to a contact form or support page in the email body.
To change the sender prefix, describe what you want in the chat. For example:
- "Change the sender address for order emails to 'orders'"
- "Use 'hello' as the sender for all emails"
- "Send newsletter emails from 'newsletter' instead of 'no-reply'"
The AI will update the code in the next build. You can only control the prefix — the domain part is always your project's domain and cannot be changed independently.
Notes on delivery
- For projects using the default Caffeine domain or a Caffeine-purchased domain, email delivery works with no extra setup.
- For projects using an external domain, the mail DNS records (DKIM, SPF, and DMARC) must be configured at your registrar. If these records are missing, emails will not be delivered.
- Marketing emails are only delivered to recipients who have (a) verified their email address within your app and (b) actively subscribed to the relevant topic. Unverified or unsubscribed users are silently excluded from sends.
- The raw email component is limited to 50 recipients per send (to + cc + bcc combined).
Frequently asked questions
What if I ask the AI to add email and it doesn't add it?
The most common reasons: your plan doesn't include email (requires Plus or Pro), or your request was ambiguous enough that the AI didn't recognize it as an email request. If your plan does not include email, the AI will tell you the email component is unavailable in your current project context — upgrading to Plus or Pro will unlock it immediately. Try being more explicit: "Add an email that gets sent to the user when they complete checkout." If you're on a qualifying plan and the AI still doesn't add email, contact support.
Can I preview or test an email before it goes to real users?
There is no sandbox mode. To test, deploy your app and trigger the action that sends the email, using a real email address you control. Check your spam folder if the message doesn't appear in your inbox.
Can I add multiple different email types to the same app?
Yes. An app can use several email capabilities at once — for example, transactional order confirmation emails alongside a marketing newsletter. Just describe each one in separate chat messages and the AI will add them independently.
How do I remove email sending from my app?
Describe the removal in the chat: "Remove the order confirmation email." The AI will remove the relevant backend code in the next build.
Does email verification work independently of user login?
Email verification is separate from your app's login system (which uses Internet Identity). A user can be logged in but have an unverified email address. The verification flow confirms the email address the user provides inside your app — it doesn't verify their Internet Identity principal.
My emails are going to spam. What can I do?
If your project uses an external domain, first verify that all mail DNS records (DKIM, SPF, and DMARC) are correctly configured at your registrar. Missing or incorrect records are the most common cause of deliverability problems. You can use a tool like Google Admin Toolbox to verify your DNS records are published. If all records are correct and the problem persists, contact support.