我们其中一台服务器的IP已被列入黑名单,我想尝试解决原因。 服务器上有许多Apache虚拟主机,所以日志logging需要按域分割,如果可能的话包括启动邮件调用的PHP脚本文件名。
邮件服务器是Qmail,服务器运行Redhat Linux。
这可能吗? 如果是的话请详细说明如何做到这一点。
谢谢。
使用以下资源完成sendmail包装器路由: http : //kb.parallels.com/1711
有一种方法可以find发送邮件的PHP脚本所在的文件夹。 请注意,根据您的操作系统和Plesk版本,path可能与下面列出的略有不同:
1)用以下内容创build/ var / qmail / bin / sendmail-wrapper脚本:
!/ bin / sh(echo X-Additional-Header:$ PWD; cat)| tee -a /var/tmp/mail.send|/var/qmail/bin/sendmail-qmail“$ @”
注意,它应该是两行,包括'#!/ bin / sh'。 2)然后创build日志文件/var/tmp/mail.send并赋予它“a + rw”权限,使包装器可执行,重命名旧的sendmail并将其链接到新的包装器:〜#touch / var / tmp / mail.send〜#chmod a + rw /var/tmp/mail.send〜#chmod a + x / var / qmail / bin / sendmail-wrapper〜#mv / var / qmail / bin / sendmail / var / qmail / bin / sendmail-qmail〜#ln -s / var / qmail / bin / sendmail-wrapper / var / qmail / bin / sendmail 3)等待一个小时左右,然后恢复sendmail:
〜#rm -f / var / qmail / bin / sendmail〜#ln -s / var / qmail / bin / sendmail-qmail / var / qmail / bin / sendmail
检查/var/tmp/mail.send文件,应该有以“X-Additional-Header:”开头的行指向发送邮件的脚本所在的域的文件夹。 您可以使用以下命令查看运行PHP脚本的所有文件夹:
〜#grep X-Additional /var/tmp/mail.send | grep
cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//'cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//'如果您看不到以上命令的输出,则表示没有使用Plesk虚拟主机目录中的PHP mail()函数发送邮件。
我不知道loggingPHP脚本或任何与Web服务器相关的位,但qmail(以及几乎所有其他MTA)通常logging发送的内容 – 至less邮件从&RCPT TO地址和邮件服务器它把消息递给了。
你也许可以parsing你的qmail日志,以了解可能被列入黑名单的内容。
另外,如果你知道你正在使用哪个黑名单,可能会给你一些线索。
如果您正在运行PHP 5.3或更高版本,则可以让PHP自动logging您正在查找的所有信息,而不需要包装脚本: