~2 min read • Updated Jan 27, 2026

1. What is iRedAPD?


iRedAPD is a Policy Server for Postfix. It:

  • Does NOT scan email content
  • Does NOT detect spam
  • Does NOT inspect attachments

Its only job is to decide whether an SMTP action is allowed or denied.


2. iRedAPD in iRedMail Architecture


Client / Internet
      ↓
    Postfix
      ↓  (policy check)
   iRedAPD  ← decision-making
      ↓
 Amavis / Queue

iRedAPD communicates directly with Postfix.


3. Core Responsibilities of iRedAPD


1️⃣ Rate Limiting

  • Limits number of emails per hour/day
  • Prevents outbound spam bursts

2️⃣ Sender Restrictions

  • Prevents sending from forged addresses
  • Enforces sender login matching

3️⃣ Recipient Restrictions

  • Prevents abuse toward a specific recipient

4️⃣ Greylisting (optional)

  • Reduces automated spam

4. Components of iRedAPD


  • iredapd (daemon) — main Python service
  • Backend database — MariaDB/MySQL or PostgreSQL

5. Important iRedAPD Paths


PathDescription
/opt/iredapd/Main program directory
/opt/iredapd/settings.pyConfiguration file
/etc/postfix/main.cfPostfix policy integration
/var/log/iredapd/Logs

6. Connecting iRedAPD to Postfix


In main.cf:

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    check_policy_service inet:127.0.0.1:7777

Default port: 7777


7. Key Settings in settings.py


Path:

/opt/iredapd/settings.py

7.1 Enable/Disable Plugins

plugins = [
    'reject_null_sender',
    'reject_sender_login_mismatch',
    'throttle',
]

7.2 Rate Limiting (critical)

THROTTLE_SENDER = {
  'inbound': (60, 3600),
  'outbound': (200, 3600),
}

This means: 200 outbound emails per hour.

7.3 Prevent Sender Spoofing

REJECT_SENDER_LOGIN_MISMATCH = True

8. Logs & Debugging


View logs:

tail -f /var/log/iredapd/iredapd.log

Example log:

REJECT Throttled sender

9. Security Best Practices


  • Always configure rate limits
  • Outbound limits should be stricter than inbound
  • Enable greylisting only if your SMTP server is strong enough
  • Ensure iRedAPD is always running

10. Common Issues


Email not sending

  • Rate limit too low
  • Incorrect plugin enabled

Server blacklisted

  • iRedAPD disabled
  • Outbound unlimited

11. iRedAPD vs Rspamd (Policy Layer)


FeatureiRedAPDRspamd
Rate limiting
Greylisting
Simplicity
Modern features

Conclusion


iRedAPD is the first line of defense before emails enter the Postfix queue. If misconfigured, it can cause major delivery issues; if configured correctly, it provides stability, protection, and peace of mind. It prevents spoofing, controls outbound traffic, and ensures your mail server stays healthy and trusted.


Written & researched by Dr. Shahin Siami