PCL's Sendmail Emulator 1.3
PCL's Sendmail Emulator
Sendmail Emulator предназначен для эмуляции программы sendmail при отладке php-скриптов на локальном сервере под Windows. Эмулятор написан для личных нужд, функционал только тот, что был мне необходим. Все письма, отправленные при помощи функции mail(), складываются в заданную папку со всеми заголовками. Для установки программы надо распаковать папку sendmail в удобное для вас место, например в папку с PHP. Никаких записей в систему Sendmail Emulator не вносит, все настройки хранятся в файле конфигурации в папке с программой. После установки эмулятора в файле php.ini надо отредактировать секцию [mail function]:
[mail function]
smtp =
smtp_port =
sendmail_from =
sendmail_path = "полный_путь_к_sendmail\sendmail.exe"
Настройки самого эмулятора выполняются в файле sendmail.ini. Вот краткое описание всех параметров, которые для этого используются.
Параметр save_to_folder определяет папку, в которую будут сохраняться перехваченные письма. Она должна быть уже создана и доступна для записи. Если этот параметр пустой или отсутствует, то письма будут сохраняться в папку с sendmail. Путь к папке прописывается без кавычек.
Параметр fix_crlf определяет будут или нет заменяться в письме символы перевода каретки на пару CRLF. Поясню зачем это нужно. При правильном формировании и отправке письма из скрипта заголовки и все части письма разделяются одиночным символом "\n". Соответственно это же получит sendmail и сохранит в файл письма на диске. При открытии такого файла стационарными почтовыми программами могут возникнуть проблемы, так как им требуется не одиночный символ "\n", а пара "\r\n". За все почтовые программы утверждать не буду, но на своем The Bat! я наблюдал именно такое поведение. Приходилось открывать файл письма в блокноте, сохранять, чтобы прописались переносы строк CRLF, и только после этого письмо корректно открывалось. Для выполнения этого процесса "на лету" и был введен параметр fix_crlf. Значения параметра: 1 - включено, 0 или пусто - выключено.
Если указан параметр open_email, то после создания письма оно будет сразу же открыто при помощи внешней программы, заданной этим значением. Путь к программе можно задавать с использованием переменных окружения.
Если внешней программе требуется передавать дополнительные параметры, то укажите их в ключе настроек open_param. Шаблон %s будет заменен на полное имя файла письма. При пустом значении программе в качестве единственного параметра будет передано имя файла письма. Если ключ open_email не задан, то open_param будет игнорироваться.
Параметр open_email_by_default определяет, требуется ли открывать созданные файлы .EML в программе, которая указана в системе по умолчанию. Значения параметра: 1 - ДА, 0 - НЕТ. Если этот параметр указан, то параметры open_email и open_param будут игнорироваться.
Для диагностики добавлен параметр write_log, имеющий значение 1 - ДА, 0 - НЕТ. При включенном параметре эмулятор будет записывать подробный лог в папку с программой.
Для проверки настройки эмулятора запустите sendmail_test.bat из папки sendmail. Если все сделано правильно, то в указанной папке будет создано тестовое письмо.
Просмотров: 8596 | Комментариев: 17
Метки: мои программы, PHP
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(26.04.2016 в 00:27):
Версия 1.3. Добавлено расширенное логирование (параметр write_log в ini-файле), изменен формат имени сохраняемых eml-файлов, устранены все найденные ошибки, повышена стабильность работы.
ManHunter
(08.04.2016 в 11:18):
В следующей версии будет расширенная диагностика и подробное логирование. Можно будет выяснить, почему не сохраняет.
Руслан
(02.04.2016 в 19:42):
У меня тоже не вызывается. винда 7
Саня
(14.02.2016 в 06:15):
Отличный эмулятор, всё работает!
Жека
(01.10.2012 в 21:21):
Доброго времени суток! Спасибо за програму! Подскажите пожалуйста, работаю с этой прогой на XP Х86 все класно, а на 7ке Х64 не хочет создавать файл письма (версии сервера и пхп идентичны, настройки тоже), после инициализации скрипта ошибки не выдает, при тестировании через бат файл все работает нормально, антивирус не бллокирует, незнаю на что грешить?
Сергей
(12.06.2012 в 13:09):
Огромнейшее спасибо за программку. Просто, удобно, а главное - работает!!!
От души благодарю, раньше мучался со всяким платным хламом с кучей ненужных настроек и работало все через раз. А тут распаковал, чуть поправил как тебе надо и все пошло как часы.
От души благодарю, раньше мучался со всяким платным хламом с кучей ненужных настроек и работало все через раз. А тут распаковал, чуть поправил как тебе надо и все пошло как часы.
ManHunter
(29.09.2011 в 13:25):
А программа тут при чем? Что отправилось - то и сохранилось.
Лилиян
(29.09.2011 в 13:23):
Здраствуйте!Спасибо за програму, работает отлично, но есть проблема - письма в приходят пустые,с чем это связано?
ManHunter
(23.05.2011 в 13:54):
Выяснилась проблема с переменными окружения, по умолчанию Apache их не подгружает и не передает дочерним процессам. Для решения добавьте следующие строчки в файл httpd.conf и перезапустите сервер. Например:
PassEnv SystemDrive
PassEnv ProgramFiles
Если нужны другие переменные окружения, то добавьте и их тоже.
PassEnv SystemDrive
PassEnv ProgramFiles
Если нужны другие переменные окружения, то добавьте и их тоже.
semenov
(22.05.2011 в 13:07):
В состав Денвера подобная утилита входит
ManHunter
(17.08.2009 в 10:40):
Я разве сказал, что винду надо ПОКУПАТЬ? Как можно вообще платить за софт??? :)) У меня виста прожила минут 30, пока я вез ноутбук из магазина домой. После этого поставил XP, сейчас на ноуте крутится русский Win7 Ultimate.
Программу проверил на Windows Server 2008 R2, Windows 7 x64 и на Windows 7 x86, все работает как надо. Запускал по нескольку сотен раз на каждой системе, не было ни одного вылета.
Программу проверил на Windows Server 2008 R2, Windows 7 x64 и на Windows 7 x86, все работает как надо. Запускал по нескольку сотен раз на каждой системе, не было ни одного вылета.
Alien2001
(17.08.2009 в 10:07):
ManHunter, ежели стояла она на компьютере, что ж ее выбросить и XP купить? Посмотрел подробно - срабатывает она один раз из 10. В остальное время вылетает ошибка "Прекращена работа Обработчика команд Windows". Сбой в cmd
ManHunter
(17.08.2009 в 00:00):
Не вопрос, завтра проверю под Win7 x64. А про висту я даже не знаю что это такое, понаставят себе на компы всякого говнища, а потом маются с ним.
Alien2001
(16.08.2009 в 23:45):
Спасибо, очень нужная программа. Но под Вистой никак работать не хочет - вылетает окошко о прекращении процесса :(
Vito
(16.07.2009 в 18:49):
Спасибо, друг! Ты реально помог своей прожкой!
ManHunter
(24.06.2009 в 14:54):
А у меня вызывается. Это все, что я могу ответить.
serega
(24.06.2009 в 14:08):
Чего-то не вызывается из php этот файлик.
Добавить комментарий
Заполните форму для добавления комментария