我正在尝试找出哪个电子邮件程序(如果有)正在我的服务器上发送电子邮件。我的雇主有几台服务器,其中大多数使用sendmail
,但在我们的 2 台服务器上我没有找到电子邮件程序,但不知何故电子邮件已通过它发送?如果已经设置了某些东西,我不想直接安装sendmail
,我只是不确定如何找出设置了什么。服务器是Ubuntu 服务器 12.04 LTS,我正在使用PHPmail()
命令。
我能找到的唯一能够回答我的问题的信息是 Sinan 的问题:如何找出哪个程序正在发送电子邮件。我尝试了那里的两个答案,但一无所获。
which mail
什么也不做,/var/log/mail.log
完全是空的。
我尝试使用它strace ./mail-testing-strace.php
来查看执行此文件时发生了什么,但我一直收到“权限被拒绝”的消息,如下所示:
execve("./mail-testing-strace.php", ["./mail-testing-strace.php"], [/* 19 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl64(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77ca000
_llseek(3, 0, 0xbfa1ae34, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n", 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0xb77ca000, 4096) = 0
exit_group(1) = ?
该文件mail-testing-strace.php
非常简单,只有以下代码:
<?php
$to = "[email protected]";
$subject = "Emailing Test";
$message = "This is a test, is it working?";
mail($to,$subject,$message);
?>
可能是我使用方法不strace
正确,因为这是我第一次尝试使用它。我在一台我知道安装了 sendmail 的服务器上尝试了它,得到了同样的消息。我也尝试strace
以 root 用户身份运行,但仍然没有成功。
答案1
你可以尝试
$ dpkg -S `which sendmail`
我相信 postfix 是 Ubuntu 的默认 MTA。它的主要配置文件是/etc/postfix/main.cf
其他可能有帮助的命令:
# netstat -tanpl|grep :25
# lsof -i :25