Linux

如何找出安裝/發送電子郵件的郵件程序?

  • October 9, 2020

我正在嘗試找出在我的伺服器上發送電子郵件的電子郵件程序(如果有的話)。我的雇主有幾台伺服器,其中大部分使用sendmail,但在我們的 2 台伺服器上,我沒有找到電子郵件程序,但不知怎麼的,電子郵件已經隨它一起發送了?如果已經設置了某些東西,我不想sendmail只安裝,我只是不確定如何找出設置的內容。伺服器是Ubuntu Server 12.04 LTS,我使用的是**PHPmail()**命令。

我能找到嘗試回答我的問題的唯一資訊是思南的問題:如何找出正在發送電子郵件的程序。我在那裡嘗試了兩個答案,但一無所獲。

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 = "chris@test.com";
$subject = "Emailing Test";
$message = "This is a test, is it working?";
mail($to,$subject,$message);
?>

我可能沒有strace正確使用,因為這是我第一次嘗試使用它。我在我知道已安裝 sendmail 的伺服器上嘗試過它並收到相同的消息。我也嘗試strace以root使用者身份執行,但仍然沒有成功。

你可以試試

$ dpkg -S `which sendmail`

我相信 postfix 是 Ubuntu 的預設 MTA。它的主要配置文件是/etc/postfix/main.cf

其他可能有幫助的命令:

# netstat -tanpl|grep :25

# lsof -i :25

引用自:https://serverfault.com/questions/496005