我一直在这个非常困难的时间,到处search,并绝望地发布这个问题。
我在Ubuntu 12.04上使用postfix和dovecot。 我很努力地触发一个PHP脚本,运行任何时候一个新的电子邮件被服务器接收。 在我的/etc/postfix/main.cf中添加了这一行:
always_bcc = new_incoming_email@localhost
在/ etc / aliases我有这样一行:
new_incoming_email: "|/usr/bin/php -f /path/to/file/new_incoming_email.php"
在/ etc / postfix / vmaps我有一行:
new_incoming_email@localhost localhost/new_incoming_email/
当我从命令行运行文件时,可以看到该文件起作用,因为它将一行作为其function的一部分添加到日志文件中。 从命令行input:/ usr / bin / php -f /path/to/file/new_incoming_email.php
以下是我在发送邮件到服务器时在/var/log/mail.log中得到的内容:
Feb 1 04:20:52 myserver postfix/smtpd[3090]: connect from nm40-vm4.bullet.mail.bf1.yahoo.com[72.30.239.212] Feb 1 04:20:52 myserver postfix/smtpd[3090]: C1EDD20630: client=nm40-vm4.bullet.mail.bf1.yahoo.com[72.30.239.212] Feb 1 04:20:52 myserver postfix/cleanup[3004]: C1EDD20630: message-id=<[email protected]> Feb 1 04:20:52 myserver postfix/qmgr[1092]: C1EDD20630: from=<[email protected]>, size=24383, nrcpt=2 (queue active) Feb 1 04:20:52 myserver postfix/error[3008]: C1EDD20630: to=<[email protected]>, relay=none, delay=0.22, delays=0.18/0/0/0.04, dsn=4.4.1, status=defferred (delivery temporarilyferred (delivery temporarily suspended: connect to localhost.com[74.125.224.72]:25: Connection timed out) suspended: connect to localhost.com[74.125.224.72]:25: Connection timed out) Feb 1 04:20:52 myserver postfix/virtual[3092]: C1EDD20630: to=<[email protected]>, relay=virtual, delay=0.22, delays=0.18/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to maildir) Feb 1 04:20:53 myserver postfix/smtpd[3090]: disconnect from nm40-vm4.bullet.mail.bf1.yahoo.com[72.30.239.212]
与example.com是我的服务器中存在的域。
这里是“postconf -n:”的输出
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases always_bcc = new_incoming_email@localhost biff = no config_directory = /etc/postfix default_privs = johnvision default_transport = smtp home_mailbox = Maildir/ inet_interfaces = all inet_protocols = all mailbox_size_limit = 0 mydestination = localhost mynetworks = 127.0.0.0/8 [::1]/128 108.171.187.9 myorigin = $myhostname recipient_delimiter = + smtp_host_lookup = native smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU) virtual_gid_maps = static:5000 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = /etc/postfix/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmaps virtual_minimum_uid = 1000 virtual_uid_maps = static:5000
我一直试图让这个工作很长一段时间。 其实,我有一段时间工作,但我已经改变了服务器上的东西(不完全确定是什么),从那时起,它一直没有工作。
我真的需要一些帮助。
基于你的maillog,我可以看到,后缀重新将always_bcc目标从new_incoming_email @ localhost到new_incoming_email @ localhost.com 。 这导致后缀抱怨与错误
(delivery temporarily deferred (delivery temporarily suspended: connect to localhost.com[74.125.224.72]:25: Connection timed out)
负责这个重写的参数是append_dot_mydomain ,默认值是yes 。 当值为yes时 ,postfix会将string.$mydomain附加到没有“.domain”信息的地址。 这就是为什么new_incoming_email脚本永远不会被触发的原因。
把append_dot_mydomain = no放在main.cf中应该使postfix不像以前那样改变域。