Помогите ламеру! ...Оч. нужно

Тема в разделе "Delphi - FAQ", создана пользователем Babak, 28 сен 2010.

  1. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    Очень, очень понадобилось внести изменения в одну цифру в исходники программы на Паскале, почти день убил, и никак.
    Я не программист и даже не продвинутый любитель (так, иногда чужой VBA для Офиса под себя перекраиваю, когда прижмёт), и посему Делфи для меня, к сожалению, тёмный лес.
    По работе мне необходимо пару раз в неделю делать рассылку на ~ 1200 адресатам, а SMTP сервер позволяет отправлять не боле 50, так раньше почта всю неделю отправлялась, даже по ночам :lovecodeby:
    ... и решил я оптимизировать сей процесс, поискал инфу, поскачивал и протестировал разные спам-проги - некоторые работают оч. хорошо и быстро (AMS Enterprise), но мне не нужна рассылка спама, мне нужна ПЕРЕПИСКА, а в Бате у меня шаблоны настроены по всем группам адресовв, столько работы проделано... В общем, понял я, что мне нужно поднимать свой SMTP сервер. Из всех прог выбор пал на бесплатный SPECTral Personal SMTP Server (во многом выбор решила подробная справка на руском, для неспециалиста оч. полезно). Прога исправно отправляеть почту, правда виснет иногда, если в 100 потоков отправлять, но свою работу делает.Только один затык-не хочет оправлять письма на письма с адресом на домене из четырёх символов, включая точку, после собаки (типа i.ua, i.kz и т.п) Решил я с автором связаться, а он этот проэкт, оказывается, 7 лет назад делал, сейчас забыл говорит, уже всё, да и времени видно нету, но ошибку в коде мы таки нашли, параметр в одной функции поменять надо (исходники все на сайте программы лежат, для всеобщего использования). Ошибка то найдена, а как исходники в прогу скомпилировать-х.з., автор редко откликается, наверное, занят, а мне ОЧЕНЬ нужно. Поставил Делфи, открыл проэкт, нажимаю компилировать, и такая фигня: http://s001.radikal.ru/i194/1009/91/c0e42e00edfe.jpg
    Поможете?
     
  2. AndreyS

    AndreyS Active Member

    Регистрация:
    15 окт 2007
    Сообщения:
    39
    Симпатии:
    0
    Это он тебе говорить что не может найти файл System.pas или System.DCU возможно ты не продекларировал их, а может быть просто пути к ним не верные

    Это - следствие "кривой" установки или "кривого" варианта установочного диска.

    Как исправить.
    Прежде всего открываем в главном меню Дельфи: Tools/EnvironmentOptions, а там открываем вкладку Library.
    В первой строке у вас в самом начале в обязательном порядке должно быть прописано что-то вроде: $(DELPHI)\Lib;$(DELPHI)\Bin; и т.д.
    Если такое есть, видимо, Дельфи не понравилось место, куда вы ее установили (она не любит находиться среди каталогов с русскими буквами).
    Пропишите в начале этой строки вручную путь, куда вы установили Дельфи-библиотеки. Это нечто вроде D:\Borland\Delphi7\Lib.
    Но это - у меня, а вам нужно уточнить в вашем каталоге \Borland\.
     
  3. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    здесь смотреть? http://s48.radikal.ru/i121/1009/2c/eafa0cffebd5.jpg
     
  4. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    прописал указанный путь-вроде заработало... но как дальше
    ..опять ошибка http://s48.radikal.ru/i121/1009/80/04952e0753b0.jpg

    Вобщем, измаялся я весь! попробуйте кто-нибудь откомпилировать, может у кого получится?
    Исходники на сайте автора программы здесь http://www.spsmtp.org/sources.php,
    ссылка на скачивание http://www.spsmtp.org/src/src05b1.rar
     
  5. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Есть подозрение что просто нужна более новая версия делфи (щас ставлю 2010, через пол часа напишу точно), а тут можно взять CoolTrayIcon
     
  6. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    ..Автор программы говорил, что надо не ниже 2006... он её редактировал несколько лет назад в последний раз..Если есть какие-либо профессиональные вопросы, могу задать ему... только не факт, что ответ быстро будет
     
  7. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    В 2010 версии компилится нехочет (очень много глюков с переводом из char в ansichar), щас качаю 2006


    Добавлено :
    Поставил 2006 , некомпилит :-(
    Свяжитесь с автором и спросите какие дополнительные компоненты он ставил.
     
  8. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    пытаюсь связаться.. про компоненты- автор программы вроде говорил, что они лежат в папке /RSPack/
    т.е по идее, для компиляции нужны две папки /RSPack/ -в ней реурсы, и /SPSMTP-ILA/ -в ней осн. код программы выглядят они так:
    http://i074.radikal.ru/1009/88/43bd565d0fe4.jpg
    и
    http://s003.radikal.ru/i202/1009/ec/74850f6cef9e.jpg
     
  9. Dimka Inc

    Dimka Inc Гость

    Вообще автор программы все компоненты дал. Программа компилируется. Достаточно нужные модули установить. К сожалению декларации объектов из Delphi 7 претерпели модификации в Delphi 2006 и в скомпилированной программе часто вылетают эксцепшены. Delphi 2006 я не покупал, так что в ней не смогу компилировать. Если что, Babak, обращайтесь, подскажу что и как нужно сделать, чтобы все скомпилировалось.
     
  10. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    Спасибо за помощь, дело за малым-поставить Delphi 2006 :)
     
  11. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    скачал Дельфи 2006, устанавливаю, нужно ли ещё до кучи ставить Borland Developer Studio 2006 Extensions разные? и вот это :
    Требуемые пакеты от Microsoft для установки Borland Developer Studio 2006

    Microsoft Internet Explorer 6.0 SP1
    Microsoft .NET Framework 1.1 SP1
    Microsoft .NET Framework SDK (English) 1.1 Setup
    Microsoft Visual J# .NET 1.1 Redistributable Package
    Microsoft XML Core Services 4.0 SP2
    (в комплекте шло, хотя в системе версии повыше)

    материцца, требует Microsoft .NET Framework 1.1 SP1, хотя в системе 3.0 стоит...чё делать?
     
  12. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    Теперь у меня стоит Borland Developer Studio 2006. Жду ваших инструкций и подсказок!
     
  13. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    Dimka Inc, где же вы?
     
  14. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Нда, компоненты таки все в комплекте(недосмотрел), а теперь как я ставил:
    1.Копируем всё из Sources\RSPack\ в папкуlib там где делфи(пример C:\Program Files\Borland\BDS\4.0\lib)
    запускаем и устанавливаем
    2.Sources\RSPack\RSPak.dpk
    3.Sources\RSPack\RSPakDsgn.dpk

    4.Копируем всё из Sources\SPSMTP-ILA\bin в папку lib там где делфи(пример C:\Program Files\Borland\BDS\4.0\lib)
    также копируем с папки и всех подпапок Sources\SPSMTP-ILA\units

    запускаем и устанавливаем
    5.Sources\SPSMTP-ILA\units\interface\altcontrols\SpinXP\Spin_XP.dpk
    6.Sources\SPSMTP-ILA\units\interface\altcontrols\cooltray\CoolTray.dpk
    Ну вроде все.
     
  15. Dimka Inc

    Dimka Inc Гость

    Я тут бываю раз в сутки.
    1. в папке src05b1\Sources\RSPack по очереди открываем пакеты и устанавливаем их:
    RSPak.dpk
    RSPakDsgn.dpk

    2. После установки дописываем в Tools/EnvironmentOptions, а там открываем вкладку Library.
    В первой строке: $(DELPHI)\Lib;$(DELPHI)\Bin; и т.д.
    в конец точку с запятой и полный путь к этой папке с указанием диска.
    Например:

    $(DELPHI)\Lib;$(DELPHI)\Bin;$(DELPHI)\Imports;$(DELPHI)\Projects\Bpl;$(DELPHI)\Rave5\Lib;D:\src05b1\Sources\RSPack
    в четвертую строку аналогично дописываем то же самое
    Например:

    $(DELPHI)\source\vcl;$(DELPHI)\Source\Rtl;$(DELPHI)\source\rtl\Corba45;$(DELPHI)\source\rtl\Sys;$(DELPHI)\source\rtl\Win;$(DELPHI)\source\rtl\common;$(DELPHI)\source\Internet;$(DELPHI)\source\clx;$(DELPHI)\source\websnap;$(DELPHI)\Source\WebMidas;$(DELPHI)\Source\Indy;$(DELPHI)\Source\IntraWeb;$(DELPHI)\Source\Samples;$(DELPHI)\Source\Soap;$(DELPHI)\Source\ToolsAPI;$(DELPHI)\Source\Xml;D:\src05b1\Sources\RSPack

    3. Аналогично п.1 и 2 поступаем в папке \Sources\SPSMTP-ILA\units\interface\altcontrols\cooltray открыв и установив пакет
    CoolTray.dpk

    4. повторяем п.1 и 2 для папки Sources\SPSMTP-ILA\units\interface\altcontrols\SpinXP и пакета в ней:
    Spin_XP.dpk

    В результате в Tools/EnvironmentOptions, во вкладке Library. получим нечто вроде этого:

    Строка 1:
    $(DELPHI)\Lib;$(DELPHI)\Bin;$(DELPHI)\Imports;$(DELPHI)\Projects\Bpl;$(DELPHI)\Rave5\Lib;D:\src05b1\Sources\RSPack;D:\src05b1\Sources\SPSMTP-ILA\units\interface\altcontrols\cooltray;D:\src05b1\Sources\SPSMTP-ILA\units\interface\altcontrols\SpinXP

    Строка 4:
    $(DELPHI)\source\vcl;$(DELPHI)\Source\Rtl;$(DELPHI)\source\rtl\Corba45;$(DELPHI)\source\rtl\Sys;$(DELPHI)\source\rtl\Win;$(DELPHI)\source\rtl\common;$(DELPHI)\source\Internet;$(DELPHI)\source\clx;$(DELPHI)\source\websnap;$(DELPHI)\Source\WebMidas;$(DELPHI)\Source\Indy;$(DELPHI)\Source\IntraWeb;$(DELPHI)\Source\Samples;$(DELPHI)\Source\Soap;$(DELPHI)\Source\ToolsAPI;$(DELPHI)\Source\Xml;D:\src05b1\Sources\RSPack;D:\src05b1\Sources\SPSMTP-ILA\units\interface\altcontrols\cooltray;D:\src05b1\Sources\SPSMTP-ILA\units\interface\altcontrols\SpinXP

    Уже после этого можете открывать исходник своего проекта и компилировать его.
     
  16. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    Всем отписавшимся большое спасибо, сегодня, как появится время, буду пытаться.
     
  17. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    Cпасибо само на плюс не нажмет)
     
  18. Babak

    Babak Member

    Регистрация:
    28 сен 2010
    Сообщения:
    12
    Симпатии:
    0
    -оно сразу туда нажало ;)

    А теперь собственно просьба: Borland Developer Studio 2006 я закачал и установил на комп, на который, к сожалению, какое-то время не будет доступа. Не будет ли кто-либо из знатоков столь добр, что скомилирует вышеупомянутые исходники, изменив там одну цифру, и выложит на какой-либо файлообменник
    Изменить необходимо значение в функции проверки правильности адреса
    (текущий вариант определяет как неверные адреса писем с количеством знаков меньше пяти, включая точку, в доменном имени, т.е письма вроде name@i.ua, name@i.kz не проходят через эту программу):

    function ValidEmail(const Value:string):boolean;
    function CheckAllowed(const s:string):boolean;
    var
    i: integer;
    begin
    Result:= false;
    if u_options.notcheckchars=0 then
    for i:= 1 to Length(s) do
    begin
    if not (s in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then
    Exit;
    end;
    Result:= true;
    end;
    var
    i: integer;
    namePart, serverPart: string;
    begin
    Result:= false;
    i:= Pos('@', Value);
    if i = 0 then Exit;

    namePart:= Copy(Value, 1, i - 1);
    serverPart:= Copy(Value, i + 1, Length(Value));
    if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then Exit;

    i:= Pos('.', serverPart);
    if (i = 0) or (i > (Length(serverPart) - 2)) then Exit;

    Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
    end;


    ...Изменить конкретно в этом фрагменте
    ======================
    namePart:= Copy(Value, 1, i - 1);
    serverPart:= Copy(Value, i + 1, Length(Value));
    if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then Exit;

    i:= Pos('.', serverPart);
    if (i = 0) or (i > (Length(serverPart) - 2)) then Exit;
    ======================
    здесь ((Length(serverPart) < 5)) цифирьку 5 на 4

    получится
    ======================
    namePart:= Copy(Value, 1, i - 1);
    serverPart:= Copy(Value, i + 1, Length(Value));
    if (Length(namePart) = 0) or ((Length(serverPart) < 4)) then Exit;

    i:= Pos('.', serverPart);
    if (i = 0) or (i > (Length(serverPart) - 2)) then Exit;
    ======================

    файл исходников с этой фунцией под названием u_service.pas
    лежит в папках исходников по такому пути:
    \src05b1\Sources\SPSMTP-ILA\units\u_service.pas

    исходники здесь http://www.spsmtp.org/src/src05b1.rar

    Кто откликнется, оччень большое спасибо
     
  19. barbarian

    barbarian New Member

    Регистрация:
    11 апр 2008
    Сообщения:
    4
    Симпатии:
    0
    Так чем дело-то закончилось?

    Наткнулся на ту-же проблему с короткими адресами, погуглил-вышел сюда.
    Сайт с исходником давно почил, остался (пока) только http://spsmtp.ru с описанием, и тот вроде автор не посещает.
     
Загрузка...

Поделиться этой страницей