Thank you so much for your time and help. You guys are the best!
Thanks Em seg., 8 de nov. de 2021 às 16:16, <post...@ptld.com> escreveu: > > Its a PHP simple script: > > > > #!/usr/bin/php > > <?php > > print_r("action=PERMIT\n\n"); > > ?> > > > As Wietse stated, the policy server is designed to be recycled to avoid a > script start up expense for each email. I created this in PHP before > deciding to use a milter instead. Here is an example of how i was able to > get PHP to process multiple emails before exiting the script. > > > #!/usr/bin/php > <?php > # > # Install Script At > # /usr/libexec/postfix/<POLICY_SCRIPT_NAME> > # > # Postfix Creates Socket At > # /var/spool/postfix/private/<POLICY_SERVICE_NAME> > # > # master.cf: > # <POLICY_SERVICE_NAME> unix - n n - 0 spawn > user=<LINUX_USER> argv=/usr/libexec/postfix/<POLICY_SCRIPT_NAME> > # > # main.cf: > # <POLICY_SERVICE_NAME>_time_limit = 3600 > # smtpd_recipient_restrictions = > # check_policy_service unix:private/<POLICY_SERVICE_NAME> > # > set_time_limit(0); > ignore_user_abort(true); > stream_set_timeout(STDIN, 30); > > while (true) { > $buffer = array(); > while (true) { > $line = trim(fgets(STDIN)); > if (connection_status() == 1) exit(0); > if ($line == "") break; > $key = ""; > $value = ""; > if (strpos($line, "=")) list($key, $value) = explode("=", > $line, 2); > if ($key) $buffer[$key] = $value; > } > processInput($buffer); > unset($buffer); > } > > function allow () { > echo "action=dunno" . PHP_EOL; > echo PHP_EOL; > return null; > } > > function reject ($reason = "Policy Violation") { > echo "action=550 $reason" . PHP_EOL; > echo PHP_EOL; > return null; > } > > function noreply () { > echo PHP_EOL; > return null; > } > > function processInput (&$buffer) { > if (count($buffer) < 1) return noreply(); > > # Example To Reject > if (isset($buffer['recipient']) && $buffer['recipient'] == " > u...@example.com") return reject("User not accepting email."); > > # Accept Email > return allow(); > } > ?> >