SMTP integration
Connect existing applications, including Supabase.
Connection
Require STARTTLS and certificate verification. Password is a workspace API key with emails:send.
| Setting | Value |
|---|---|
| Host | mail.inboxit.wtf |
| Port | 587 |
| TLS | STARTTLS required (not implicit TLS) |
| Username | inboxit |
| Password | Sending API key |
Credentials
Use a dedicated expiring key for each integration. Revoking it disables SMTP access.
inboxit smtp create-key --name supabase --scopes emails:send
inboxit smtp getNode.js
Install nodemailer separately. Supply your key from the server environment. Use a verified sender and your recipient’s address.
import nodemailer from 'nodemailer';
const smtp = nodemailer.createTransport({
host: 'mail.inboxit.wtf', port: 587, secure: false, requireTLS: true,
auth: {user: 'inboxit', pass: process.env.INBOXIT_API_KEY}
});
await smtp.sendMail({from: 'Your Brand <hello@mail.yourbrand.com>',
to: 'recipient@example.com', subject: 'Welcome', text: 'Your account is ready.'});Supabase
Enter these settings in custom SMTP, with your verified sender and display name. Configure auth redirect URLs for your app separately. The password is an InboxIt key, not a Supabase service-role key. The auth provider may enforce its own email limits.
Limits and errors
One recipient, 100,000 raw bytes, no attachments. Envelope sender must match From. Same sender/quota/suppression/account checks as REST. Success means queued. Identical raw submissions use a content-derived idempotency key. 535: authentication; 452: recipients; 552: size; 553: sender mismatch; 554: attachments; 451: temporary failure; 550: application rejection.