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();
> }
> ?>
>

Reply via email to