Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Сделайте бэкап sendmail.mc и sendmail.cf.
Сначала проверьте, что /etc/mail/sendmail.mc содержит строку:
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
Если её там нет — добавьте (у меня например не было).
Скомпилируйте изменения конфига (мне лично тут потребовалось колдовство с chmod & chown):
$ m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf
Добавьте изменения в /etc/mail/mailertable.
(строка. local:username)
Сгенерируйте базу mailertable.db:
$ makemap hash /etc/mail/mailertable </etc/mail/mailertable
Перезапустите sendmail.
$ service sendmail restart
#!/bin/sh
prefix="/var/www/sendmail"
date=`date \+\%Y\%m\%d\%H\%M\%N`
name="$prefix/$date.eml"
while IFS= read line
do
echo "$line" >> $name
done
chmod 666 $name
$sendMailStubObj = new SendMailStub();
$sendMailStubObj->main();
class SendMailStub
{
private $_saveEmailsPath = "/mnt/windev/tmp/__sendmail/"; //change path HERE
function main()
{
//--- get email from the stream ---//
$stream_data = '';
$stream_handler = fopen('php://stdin', 'r');
while ($t = fread($stream_handler, 2048)) {
if ($t === chr(0))
break;
$stream_data .= $t;
}
fclose($stream_handler);
//save to file
$fwrite_handler = fopen($this->_generateUniquePath(), 'w');
fwrite($fwrite_handler, $stream_data);
fclose($fwrite_handler);
}
private function _generateUniquePath()
{
$i = 0;
do {
$path = $this->_saveEmailsPath . $this->_generateFname($i);
$i++;
if($i > 100){
break;
}
} while (file_exists($path) == true);
return $path;
}
private function _generateFname($i = 0)
{
$parts = array(
date('Y-m-d_H-i-s'),
);
if ($i > 0) {
$parts[] = "_{$i}";
}
$parts[] = ".eml";
$fname = implode("", $parts);
return $fname;
}
}
while read line
do
echo $line >> $name
done
while read line
do
echo "$line" >> $name
done
sendmail_path = /bin/cat > "/tmp/mail_`date +%Y-%m-%d_%H-%M-%S`"
Sendmail-заглушка для Linux