Skip to content

Email & SMS

Parako.ID uses SMTP to send transactional emails. Configure your SMTP server in the integrations.email section:

{
"integrations": {
"email": {
"smtp_host": "smtp.example.com",
"smtp_port": 587,
"smtp_username": "noreply@example.com",
"smtp_password": "${SMTP_PASSWORD}",
"from": "noreply@example.com",
},
},
}
FieldDefaultDescription
smtp_hostSMTP server hostname
smtp_port587SMTP port (587 for STARTTLS, 465 for SSL)
smtp_usernameSMTP authentication username
smtp_passwordSMTP password (use ${SMTP_PASSWORD} env var)
fromSender email address

Set the SMTP_PASSWORD in your .env file — never put it directly in the config file.

Any SMTP-compatible service works. Common options:

ProviderHostPort
AWS SESemail-smtp.<region>.amazonaws.com587
SendGridsmtp.sendgrid.net587
Mailgunsmtp.mailgun.org587
Postmarksmtp.postmarkapp.com587
Gmailsmtp.gmail.com587
Self-hosted (Postfix)localhost25

Parako.ID uses Nunjucks templates for email content. Emails are sent for these events:

EmailTrigger
Email verificationUser registers with email verification enabled
Password resetUser requests password reset
Email OTPMFA code via email
New device alertLogin from unrecognized device (when notify_new_session is enabled)
New session alertLogin from new location

Email templates are styled with inline CSS for maximum compatibility across email clients.

To use Amazon SES as your email provider:

  1. Verify your sender domain or email address in the SES console
  2. Create SMTP credentials in SMTP Settings
  3. If your account is in the SES sandbox, verify recipient email addresses for testing
  4. Request production access to remove sandbox restrictions
.env
SMTP_PASSWORD=your_ses_smtp_password
{
"integrations": {
"email": {
"smtp_host": "email-smtp.us-east-1.amazonaws.com",
"smtp_port": 587,
"smtp_username": "YOUR_SES_SMTP_USERNAME",
"smtp_password": "${SMTP_PASSWORD}",
"from": "noreply@yourdomain.com",
},
},
}

Parako.ID integrates with Twilio for SMS-based MFA and account recovery. SMS is disabled by default.

To enable:

  1. Create a Twilio account and get a phone number
  2. Configure Twilio credentials in notifications.channels.sms
  3. Enable SMS MFA and/or SMS recovery
{
"notifications": {
"channels": {
"sms": {
"enabled": true,
"provider": "twilio",
"api_key": "YOUR_TWILIO_ACCOUNT_SID",
"api_secret": "YOUR_TWILIO_AUTH_TOKEN",
"from_number": "+1234567890",
},
},
},
}
FieldDescription
enabledEnable the SMS channel
providerSMS provider (currently twilio)
api_keyTwilio Account SID
api_secretTwilio Auth Token
from_numberTwilio phone number to send from

Once Twilio is configured, enable SMS for MFA and/or account recovery:

{
"security": {
"authentication": {
"multi_factor": {
"sms": {
"enabled": true,
},
},
"recovery": {
"sms": {
"enabled": true,
},
},
},
},
}

SMS is used for:

  • MFA verification codes during login
  • Account recovery when primary credentials are lost

Configure which notification channels are available and their default behavior:

{
"notifications": {
"channels": {
"email": { "enabled": true },
"sms": { "enabled": false },
},
"defaults": {
"security_alerts": true,
"new_session_alerts": true,
"allow_user_preferences": true,
},
},
}
FieldDefaultDescription
channels.email.enabledtrueEnable email notifications
channels.sms.enabledfalseEnable SMS notifications
security_alertstrueSend alerts for security events (password changes, MFA changes)
new_session_alertstrueSend alerts for new login sessions
allow_user_preferencestrueAllow users to customize their notification preferences

When allow_user_preferences is enabled, users can manage their notification settings from their account page.