Postfix将电子邮件发送到脚本不会将电子邮件内容传递到脚本

时间:2019-09-20 08:02:52

标签: php postfix-mta

我有一个基本的后缀管道实现,其中将特定电子邮件地址上的传入电子邮件通过管道传递到PHP脚本。在使用Apache2和PHP 5.6的ubuntu 14.04时,此实现可以正常工作2年。最近,我在服务器上执行了“ do-release-upgrade”,并使用nginx PHP7.1-FPM迁移到了Ubuntu 16.04。之后,我的postfix服务器仍然运行,并且通常发送电子邮件并通过dovecot进行接收,但是管道脚本无法接收电子邮件内容。

每当电子邮件转到该脚本时,该邮件的内容均为空。

这是我的main.cf的后缀配置:

default_privs=www-data
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no

readme_directory = no


smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname =pakistanplacement.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mydomainname.com, localhost.localdomain,localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
#smtpd_recipient_restrictions =check_recipient_access hash:/etc/postfix/access,permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes

milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

这是我的/ etc / aliases文件的内容:

postmaster:    root
upload: "|/var/www/public_html/production/parser/index.php"

怎么了? ubuntu升级后,我确实重新启动了postfix,dovecot。 还运行了newaliases,但错误仍然保持不变。

这是通过电子邮件发送电子邮件的index.php的内容:

$contents='';
$handle = fopen("php://stdin", "r");

while (!feof($handle)) {
    $contents .= fread($handle, 8192);
}
fclose($handle);

$contents;//This contents variable always is empty string ''

0 个答案:

没有答案