Я последовал за документация по postfix чтобы настроить сценарий, который я могу использовать для написания настраиваемых фильтров для входящей почты на check_policy_service
событие, и он работает нормально, но я не могу получить доступ к телу письма - только следующие параметры из STDIN:
Array
(
[request] => smtpd_access_policy
[protocol_state] => RCPT
[protocol_name] => ESMTP
[client_address] => 208.40.44.179
[client_name] => smtprelay0179.hostedemail.com
[client_port] => 59713
[reverse_client_name] => smtprelay0179.hostedemail.com
[helo_name] => smtprelay.hostedemail.com
[sender] => john@doe.net
[recipient] => mary@doe.com
[recipient_count] => 0
[queue_id] =>
[instance] => 27c5.5bccec9c.5f5b9.0
[size] => 1905
[etrn_domain] =>
[stress] =>
[sasl_method] =>
[sasl_username] =>
[sasl_sender] =>
[ccert_subject] =>
[ccert_issuer] =>
[ccert_fingerprint] =>
[ccert_pubkey_fingerprint] =>
[encryption_protocol] => TLSv1.2
[encryption_cipher] => AECDH-AES256-SHA
[encryption_keysize] => 256
[policy_context] =>
)
Как я могу получить доступ к необработанному электронному письму (заголовки и тело), чтобы моя фильтрация также могла зависеть от этого?
В master.cf
Я настроил свой сценарий следующим образом:
filtermyemail unix - n n - 0 spawn
user=someuser argv=php /path-to-scripts/filter-incoming-email.php
Делегирование политики доступа не передает тело сообщения. Вам нужно будет создать Милтер вместо этого, если вам нужен доступ к телу сообщения.