Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Автоматизированная авторизация e-mail'ов )


Автор: ВоВеЦ 27.11.2006, 02:21
Привет!
Есть следующая проблема, у меня есть n-ое кол-во e-mail'ов, есть почтовик каторый проверяют почту, чтоб не вводить эти аккаунты вручную через n-ое кол-во времени я задумал следующие, загнать все e-mail'ы и pass'ы к ним в текстовик, а почтовик должен уже брать акк и пасс последовательна из текстовика через n-oe время(1 час например) и авторизироваться, забирая почту..  Незнаю даже с чего начать=(, буду блогадарен за любую помощь!

Автор: ВоВеЦ 27.11.2006, 06:36
Вообшем у меня ток один вариант решения:

1)Загрузить фаил
2)Читать по строчкам с циклом задержки(тут осбенно интересуют ваши варианты,если будут) т.к. незнаю будет ли мой вариант вообще работать)
3)1 строчка = 1 емаил; 2 строчка = пасс 1ого емаила;3 строчка = 2 емаил,  4 строчка = пасс 2ого емаила и тд...

Следуюшие вопросы:
1) Почему может не загружаться текст из txt файла?) Пробывал паскалевским и стримовским методом, не грузит...
2)Если txt фаил будет к примеру следующего содержания:
-------------------
mail='mail@mail.ru' pass='mail'
mail1='mail1@mail.ru' pass='mail'
mail2='mail2@mail.ru' pass='mail'
--------------------

Возможно сделать так чтоб читался ток сам маил и пасс, тоесть чтоб после прочтения первой строки в переменную mail записавалось значение mail@mail.ru, а pass значение mail

Помогите пжласта, без вас некуды!


Автор: Guedda 27.11.2006, 08:32
Во-первых, пиши без ошибок, так как ничего не понятно.
Я бы посоветовал тебе пользоваться простенькой БД, Записал туда e-mail и пароли, и считывай спокойно.

Цитата(ВоВеЦ @  27.11.2006,  06:36 Найти цитируемый пост)
1) Почему может не загружаться текст из txt файла?) Пробывал паскалевским и стримовским методом, не грузит...

Скорее всего ты прописываешь не полный путь к твоему *.txt файлу. Либо что-то не правильно делаешь... Покажи, пожалуйста, код.

Автор: ВоВеЦ 28.11.2006, 00:16
Во первых, окей постараюсь smile 
Guedda насчёт БД, был бы тебе очень блогадарен если ты мне привёл бы пример подобный БД с емаилом и пассом, по DRKB полазил насчёт их, мало чё понял...
А насчёт чтение txt разобрался...

Автор: Snowy 28.11.2006, 00:33
Какие нафиг БД.
Создай файл структуры
mail1@mail.ru=пароль
и грузи его в TStringList. (LoadFromFile)

Автор: ВоВеЦ 28.11.2006, 02:16
1) Фаил структуры? Можно ссылочку насчёт этого, в поисковиках ничего ненарыл...
2) Есть какая нибудь альтернатива sleep? Она как я понимаю тормозит исполнение всего кода, а мне нужна только проверка, если прошёл 1 час, значит надо увеличить значение цикла на один, если нет продолжать исполнение кода дальше

Автор: Snowy 28.11.2006, 03:21
Цитата(ВоВеЦ @  28.11.2006,  02:16 Найти цитируемый пост)
Фаил структуры?
Выражаясь твоими словами: "файл следующего содержания!
По сути ты пытаешься определиться со структурой файла.
То есть принцип по которому располагать данные.

Цитата(ВоВеЦ @  28.11.2006,  02:16 Найти цитируемый пост)
 Есть какая нибудь альтернатива sleep?
Таймер smile

Автор: ВоВеЦ 28.11.2006, 05:45
Цитата

Выражаясь твоими словами: "файл следующего содержания!
По сути ты пытаешься определиться со структурой файла.
То есть принцип по которому располагать данные.

Snowy  если бы ты подсказал как это осуществляется в delphi, то бы мне это помогло...

Цитата

Таймер smile

Что таймер это понятно, только как я не пытался с помощью таймера цикл остановить, ничё неполучалось, привиди пожайлуста пример.
Почемут не работает...
Код

for i:= 1 to X do
begin
Timer1.Interval := 6000;
Timer1.Enabled := true;

Автор: Zero 28.11.2006, 09:29
ВоВеЦ, снови имел ввиду, что создаёшь ты просто обычный текстовый файл, а на каждой строке пишеш вначале email адрес, потом знак "=" (или любой др. разделитель) дальше пароль.
И программно считываешь чё нужно.
Цитата(ВоВеЦ @  28.11.2006,  06:45 Найти цитируемый пост)
Snowy  если бы ты подсказал как это осуществляется в delphi, то бы мне это помогло..

Это осуществляется также как и в паскале при работе с текстовыми файлами, если не умеешь с ними работать, то поищи инфу в инете...
Цитата(ВоВеЦ @  28.11.2006,  06:45 Найти цитируемый пост)
Почемут не работает...
for i:= 1 to X do
begin
Timer1.Interval := 6000;
Timer1.Enabled := true;

1. Таймер, не нужна каждый раз запускать
Код

Timer1.Enabled := true
 это достаточно сделать не в цикле а просто один раз.
2. интервал запуска тоже не нужно каждый раз устанавливать, это тоже далается один раз.
Код

Timer1.Interval := 6000
 Причём необязательно программно, можно и сразу в свойствах всё поставить.
Чтобы в таймере чёто написать, просто кладёш его на форму и щёлкаешь двойным щелчком, появится:
Код

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //Тут пишеш последовательность операторов
end;
 Там заполняешь и всё.

Автор: ВоВеЦ 28.11.2006, 10:08
Может я чёт недопонимаю, объясню мою проблему получше... Цикл у меня находится в функции, в функции берётся емаил из текстовика, такая жа функция на пароль,  и всё это идёт в процедуру отправки маила и пароля. Вот мне надо установить этот таймер чтоб, цикл увеличевался на один каждый час, тем самым меняя маил и пасс на следующий
Код

function mailok: string;
var
Ls: TStringList;
i: integer;
begin
for i:= 0 to 19 do
 begin
  Ls := TStringList.Create;
  Ls.LoadFromFile('mail.txt');
  mailok:= Ls.Strings[0];
//тут должен находиться код каторый будет тормозить цикл на час, но не тормозить весь код,как в случии sleep, вообщем условие какое то
end;


Цитата

ВоВеЦ, снови имел ввиду, что создаёшь ты просто обычный текстовый файл, а на каждой строке пишеш вначале email адрес, потом знак "=" (или любой др. разделитель) дальше пароль.
И программно считываешь чё нужно.

Я это прекрастно понял, но чёт сколько не находил документации по работе с текстовами файлами, ничё насчёт структуры не находил, если только работать со строками, отсчитавать кол-во знаков, но мне это не подходит...

Автор: Guedda 28.11.2006, 10:16
Timer1.Interval  присваиваешь 1000
и пишешь:
Код

var
  j : Integer;
procedure TForm1.Timer1Timer(Sender : TObject);
var
Ls: TStringList;
i: integer;
begin
  Inc(j);
  if j = 3600 then begin
    i := 0;
    for i := 0 to 19 do
    begin
      Ls := TStringList.Create;
      Ls.LoadFromFile('mail.txt');
      mailok:= Ls.Strings[0];
    end;
  end;
end;

initialization
  j := 0;

Автор: ВоВеЦ 28.11.2006, 10:21
 smile  Ну это уже процедура получается... А как общую переменную mailok для всех процедур и функций я не могу задать...

Автор: Zero 28.11.2006, 19:03
Цитата(ВоВеЦ @  28.11.2006,  11:08 Найти цитируемый пост)
но чёт сколько не находил документации по работе с текстовами файлами, ничё насчёт структуры не находил

Это конструктивное выражение Снови smile , нету не каких структур, обычная работа с текстовыми строками.
Короче вот в прикреплённом файле я сделал пример, помоему как раз то что ты хотел.
Цитата(ВоВеЦ @  28.11.2006,  11:21 Найти цитируемый пост)
А как общую переменную mailok для всех процедур и функций я не могу задать...

Называется "глобальная".

Автор: ВоВеЦ 29.11.2006, 01:01
Zero нет это не совсем то, ну лан дальше я как нибудь сам, держите по +
1) Берется как я понял весь список, а не один емаил из списка
2) В одну переменую должен записываться емаил, а в другую пасс, а не всё вместе
3) Ты объявил для всего кода глобальные переменные в моём случии это не допустимо, ещё раз скажу это должно быть всё в функции

Цитата

Называется "глобальная"

Какая разница, главное поняли меня...

Автор: Zero 29.11.2006, 02:05
Цитата(ВоВеЦ @  29.11.2006,  02:01 Найти цитируемый пост)
1) Берется как я понял весь список, а не один емаил из списка

Если ты имеел ввиду про команду LoadFromFile, то она загружает содержимое текстового файла в переменную типа стринглист, а дальше работать с ней.
Цитата(ВоВеЦ @  29.11.2006,  02:01 Найти цитируемый пост)
2) В одну переменую должен записываться емаил, а в другую пасс, а не всё вместе

Это я предварительный этап сделал, а дальше само собой, вначале до знака равно в переменную заносистся почта, а всё что после заносится пас. А определить позицию "=", можно с помощью функции Pos.
Цитата(ВоВеЦ @  29.11.2006,  02:01 Найти цитируемый пост)
Ты объявил для всего кода глобальные переменные в моём случии это не допустимо, ещё раз скажу это должно быть всё в функци

Впринципе стиль хорошего програмирования нарушается, но если учесть что email'ы не меняются, то чтобы это каждый раз не делать, то в данно случае можно было-бы итак...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)