{"id":15148732,"url":"https://github.com/iredmail/iredapd","last_synced_at":"2025-04-07T18:13:09.830Z","repository":{"id":44942437,"uuid":"226753926","full_name":"iredmail/iRedAPD","owner":"iredmail","description":"A simple Postfix policy server.","archived":false,"fork":false,"pushed_at":"2025-03-15T00:11:14.000Z","size":1122,"stargazers_count":50,"open_issues_count":2,"forks_count":28,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-31T17:20:06.339Z","etag":null,"topics":["freebsd","iredmail","linux","openbsd","postfix"],"latest_commit_sha":null,"homepage":"https://www.iredmail.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iredmail.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-09T00:39:07.000Z","updated_at":"2025-03-22T20:10:04.000Z","dependencies_parsed_at":"2024-07-16T13:02:02.796Z","dependency_job_id":"14dd2a91-c1e2-4091-b9c5-17f44192bb5a","html_url":"https://github.com/iredmail/iRedAPD","commit_stats":{"total_commits":1064,"total_committers":8,"mean_commits":133.0,"dds":"0.11654135338345861","last_synced_commit":"1f5269beae6d074ae870f7095b98601e3305e889"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2FiRedAPD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2FiRedAPD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2FiRedAPD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2FiRedAPD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iredmail","download_url":"https://codeload.github.com/iredmail/iRedAPD/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246506133,"owners_count":20788595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["freebsd","iredmail","linux","openbsd","postfix"],"created_at":"2024-09-26T13:22:12.778Z","updated_at":"2025-03-31T17:20:27.499Z","avatar_url":"https://github.com/iredmail.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\n\u003e Don't forget to check out our lightweight email archiving software: https://spiderd.io/\n\n* iRedAPD is a simple [Postfix policy server](http://www.postfix.org/SMTPD_POLICY_README.html),\n  written in Python and runs as a low-privileged user (`iredapd` by default),\n  with plugin support.\n* The latest iRedAPD works with OpenLDAP, MySQL/MariaDB and PostgreSQL backends.\n* __License: GPL v3__, except few files are in different licenses, shipped in\n  iRedAPD for easier setup, but not license change.\n    * file `libs/daemon.py` is BSD license.\n    * file `libs/srslib.py` is Apache License, Version 2.0.\n* Author: Zhang Huangbin \u003czhb _at_ iredmail.org\u003e.\n\n**NOTES**:\n\n* iRedAPD is a sub-project of [iRedMail project](http://www.iredmail.org).\n* iRedAPD is installed and enabled in iRedMail by default, you don’t need\n  this tutorial if you already have iRedMail running. For standard installation\n  please check document `INSTALL.md`.\n* iRedAPD listens on 3 ports by default:\n    - `7777`: normal smtp policy service\n    - `7778`: SRS (Sender Rewriting Scheme) for sender address rewriting\n    - `7779`: SRS (Sender Rewriting Scheme) for recipient address rewriting\n* You can manage iRedAPD with iRedMail [web admin panel - iRedAdmin-Pro](http://www.iredmail.org/admin_panel.html).\n\n# Requirements\n\n- Python 3.5+\n\n# Manage iRedAPD with command line tools\n\niRedMail project has a detailed tutorial to show you how to manage iRedAPD\nwith command line tools: [Manage iRedAPD](http://www.iredmail.org/docs/manage.iredapd.html)\n\n# Available plugins\n\nPlugins are files placed under `plugins/` directory, plugin name is file name\nwithout file extension `.py`. It's recommended to read comment lines in plugin\nsource files to understand what it does and how it works.\n\n## Plugins for all backends\n\n* `reject_to_hostname`: reject emails sent to `xxx@\u003cserver hostname\u003e` from\n  external network.\n* `reject_sender_login_mismatch`: Reject sender login mismatch (addresses in\n  `From:` and SASL username). It will verify user alias addresses against\n  SQL/LDAP database.\n\n    This plugin also verifies forged sender address, e.g. sending email as\n    a local domain to local domain.\n\n* `reject_null_sender`: Reject message submitted by sasl authenticated user but\n  use null sender in `From:` header (`from=\u003c\u003e` in Postfix log).\n  RECOMMENDED to enable this plugin. It doesn't require SQL/LDAP query.\n\n    If your user's password was cracked by spammer, spammer can use\n    this account to bypass smtp authentication, but with a null sender\n    in `From:` header, throttling won't be triggered.\n\n* `amavisd_wblist`: Whitelist/blacklist for both inbound and outbound messages.\n\n    The white/blacklists are used by both iRedAPD (before-queue) and Amavisd\n    (after-queue).\n\n* `greylisting`: for greylisting service.\n* `throttle`: Throttling based on:\n    * max number of mail messages sent/received in specified period of time\n    * total mail size sent in specified period of time\n    * size of single message\n\n* `whitelist_outbound_recipient`: automatically whitelist recipient addresses\n  of outgoing emails sent by sasl authenticated (local) users. It's able to\n  whitelist single recipient address or domain for greylisting and normal\n  white/blacklist.\n\n## Plugins for OpenLDAP backend\n\n* `ldap_maillist_access_policy`: restrict who can send email to mail list.\n* `ldap_force_change_password_in_days`: force users to change password in days (default 90 days). User cannot send email before resetting password.\n\n## Plugins for MySQL/MariaDB and PostgreSQL backends\n\n* `sql_alias_access_policy`: restrict who can send email to mail alias.\n* `sql_force_change_password_in_days`: force users to change password in days (default 90 days). User cannot send email before resetting password.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firedmail%2Firedapd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firedmail%2Firedapd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firedmail%2Firedapd/lists"}