Blog. Just Blog

PCL's Sendmail Emulator 1.1

Версия для печати Добавить в Избранное Отправить на E-Mail 23.05.2011 | Категория: Мои программы | Автор: ManHunter
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: Первая публичная версия.
PCL's Sendmail Emulator 1.1PCL's Sendmail Emulator 1.1

Sendmail.Emulator.1.1-PCL.zip (6,058 bytes)


Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на Я.ру Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Поделиться ссылкой на Friendfeed Добавить в Яндекс.Закладки Добавить в закладки Memori Добавить в закладки Google
Просмотров: 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

Если нужны другие переменные окружения, то добавьте и их тоже.
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, все работает как надо. Запускал по нескольку сотен раз на каждой системе, не было ни одного вылета.
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 этот файлик.

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

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п. будут удаляться. Злостным нарушителям доступ к сайту может быть заблокирован.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2012
При использовании материалов ссылка на сайт обязательна
Время генерации: 0,3 сек. / MySQL: 2 (0,0004 сек.) / Память: 3,5 Mb
Наверх