Назад | Перейти на главную страницу

Доступ к телу почты при событии postfix check_policy_service

Я последовал за документация по 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

Делегирование политики доступа не передает тело сообщения. Вам нужно будет создать Милтер вместо этого, если вам нужен доступ к телу сообщения.