サーバーにメールを送信しているメールプログラム(ある場合)を探しています。私の雇用主にはいくつかのサーバーがあり、そのほとんどがsendmail
を使用していますが、2つのサーバーでメールプログラムが見つかりませんが、どういうわけかメールが送信されていますか? sendmail
だけをインストールしたくない場合は、すでにセットアップされているものがあれば、何がセットアップされているかを確認する方法がわからないだけです。サーバーはUbuntu Server 12.04 LTSであり、PHP mail()
コマンド。
私の質問に答えるために私が見つけることができる唯一の情報は、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がインストールされているサーバーで試してみましたが、同じメッセージが表示されました。 rootユーザーとしてstrace
を実行してみましたが、まだ成功していません。
あなたは試すことができます
$ dpkg -S `which sendmail`
PostfixはUbuntuのデフォルトのMTAだと思います。主な設定ファイルは/etc/postfix/main.cfです
役立つ他のコマンド:
# netstat -tanpl|grep :25
# lsof -i :25
お役に立てれば。