Article ID: 114845, created on May 2, 2013, last review on Aug 12, 2014

  • Applies to:
  • Plesk for Linux/Unix

解决方案

注意: 此文章针对 Postfix;如果您正使用 Qmail 邮件服务器,可查看此文章:

1711 从服务器上的 PHP 脚本发送大量邮件信息 如何找到运行这些脚本的域?

有一种方式能够找出发送邮件的 PHP 脚本来自哪个文件夹。注意: 因操作系统和 Parallels Plesk Panel 版本的不同,路径与以下列举的很不相同:

1) 创建有以下内容的 /usr/sbin/sendmail.postfix-wrapper 脚本:

#!/bin/sh
(echo X-Additional-Header: $PWD ;cat) | tee -a /var/tmp/mail.send|/usr/sbin/sendmail.postfix-bin "$@"
注意应分为两行,其中包括 "#!/bin/sh."
2) 创建日志文件,/var/tmp/mail.send, 并允许 "a+rw" 权限;设置 wrapper 可执行;重命名旧的 sendmail;并链接到新的 wrapper:

~# touch /var/tmp/mail.send
~# chmod a+rw /var/tmp/mail.send
~# chmod a+x /usr/sbin/sendmail.postfix-wrapper
~# mv /usr/sbin/sendmail.postfix /usr/sbin/sendmail.postfix-bin
~# ln -s /usr/sbin/sendmail.postfix-wrapper /usr/sbin/sendmail.postfix

3) 等一个小时并改回 sendmail:

~# rm -f /usr/sbin/sendmail.postfix
~# mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix
检查 /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//' `
如果通过以上命令没有看到任何输出,表示没有使用 PHP mail() function 从 Parallels Plesk Panel 虚拟主机目录发出邮件。

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c e0aff7830fa22f92062ee4db78133079 29d1e90fd304f01e6420fbe60f66f838 caea8340e2d186a540518d08602aa065

Email subscription for changes to this article