«Отладочная заглушка» для sendmail

 В XAMPP есть собственный почтовый сервер, но он потребует немало времени, чтобы с ним разобраться.

С помощью описанной ниже инструкции, вы сможете создать «заглушку».

1. В папке sendmail (C:\xampp\sendmail) создадим файл sendmail.php с кодом:

<?php

define('DIR','c:/xampp/tmp/sendmail/');

$stream = '';
$fp = fopen('php://stdin','r');
while($t=fread($fp,2048))
{
if( $t===chr(0) )
break;
$stream .= $t;
}
fclose($fp);

$fp = fopen(mkname(),'w');
fwrite($fp,$stream);
fclose($fp);

function mkname($i=0)
{
$fn = DIR.date('Y-m-d_H-i-s_').$i.'.eml';
if ( file_exists($fn) )
return mkname(++$i);
else return $fn;
}
?>

В моем случае предполагается получение писем в кодировке UTF-8, если вы хотите получать письма в в кодировке CP1251, то замените строчку:

fwrite($fp,$stream);

на строчку:

fwrite($fp,iconv("UTF-8","CP1251",$stream));

2. В файле php.ini (C:\xampp\php) заменяем строчку:

sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

на строчку:

sendmail_path = C:\xampp\php\php.exe c:\xampp\sendmail\sendmail.php

Строка должна быть раскомментирована (убрать символ точки с запятой «;» в начале строки).

Прописываем:

[mail function]
; For Win32 only.
SMTP = localhost (если вы уже прописали домен для WEB, то его)
smtp_port = 25

3. Создадим папку sendmail в папке tmp (C:\xampp\tmp\sendmail).

4. Перезапускаем сервер Apache и теперь все отправленные письма будут в папке C:\xampp\tmp\sendmail

Рубрика: XAMPP

Добавить комментарий

Вам надо войти, чтобы написать комментарий.