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

  • Автор темы Babak
  • Дата начала
B

Babak

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

AndreyS

Это он тебе говорить что не может найти файл System.pas или System.DCU возможно ты не продекларировал их, а может быть просто пути к ним не верные

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

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

Babak

Это он тебе говорить что не может найти файл System.pas или System.DCU возможно ты не продекларировал их, а может быть просто пути к ним не верные

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

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

здесь смотреть?
 
B

Babak

здесь смотреть?
прописал указанный путь-вроде заработало... но как дальше
..опять ошибка

Вобщем, измаялся я весь! попробуйте кто-нибудь откомпилировать, может у кого получится?
Исходники на сайте автора программы здесь ,
ссылка на скачивание
 
D

Dock1100

Есть подозрение что просто нужна более новая версия делфи (щас ставлю 2010, через пол часа напишу точно),
 
B

Babak

Есть подозрение что просто нужна более новая версия делфи (щас ставлю 2010, через пол часа напишу точно)

..Автор программы говорил, что надо не ниже 2006... он её редактировал несколько лет назад в последний раз..Если есть какие-либо профессиональные вопросы, могу задать ему... только не факт, что ответ быстро будет
 
D

Dock1100

В 2010 версии компилится нехочет (очень много глюков с переводом из char в ansichar), щас качаю 2006


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

Babak

В 2010 версии компилится нехочет (очень много глюков с переводом из char в ansichar), щас качаю 2006


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

пытаюсь связаться.. про компоненты- автор программы вроде говорил, что они лежат в папке /RSPack/
т.е по идее, для компиляции нужны две папки /RSPack/ -в ней реурсы, и /SPSMTP-ILA/ -в ней осн. код программы выглядят они так:

и
 
D

Dimka Inc

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

Babak

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

Babak

Если что, Babak, обращайтесь, подскажу что и как нужно сделать, чтобы все скомпилировалось
скачал Дельфи 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 стоит...чё делать?
 
B

Babak

Delphi 2006 я не покупал, так что в ней не смогу компилировать. Если что, Babak, обращайтесь, подскажу что и как нужно сделать, чтобы все скомпилировалось
Теперь у меня стоит Borland Developer Studio 2006. Жду ваших инструкций и подсказок!
 
D

Dock1100

Д 2006 я качал
 
D

Dock1100

Нда, компоненты таки все в комплекте(недосмотрел), а теперь как я ставил:
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
Ну вроде все.
 
D

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

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

Babak

Всем отписавшимся большое спасибо, сегодня, как появится время, буду пытаться.
 
B

Babak

Cпасибо само на плюс не нажмет)
-оно сразу туда нажало ;)

А теперь собственно просьба: 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

исходники здесь

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

barbarian

Так чем дело-то закончилось?

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!