Blog. Just Blog
PCL's Sendmail Emulator 1.1
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 будет игнорироваться.
Для проверки настройки эмулятора запустите sendmail_test.bat из папки sendmail. Если все сделано правильно, то в указанной папке будет создано тестовое письмо.
История версий:
- Версия 1.1: Добавлена возможность сразу же открывать созданные письма в почтовом клиенте, добавлена поддержка переменных окружения, сделана проверка на дублирующие имена файлов, доработан файл sendmail_test.bat
- Версия 1.0: Первая публичная версия.
Просмотров: 2715 | Комментариев: 11
Комментарии
Отзывы посетителей сайта о статье
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 этот файлик.
Добавить комментарий
Заполните форму для добавления комментария
PCL's Sendmail Emulator 1.1