Autoodpowiedź mailem na maila

0

Witam,
Jak zrobic, ze jak przyjdzie email, to ma sie odesłac email o odpowiedniej zawartości ?
Odeslanie maila to nie problem, tylko gorzej z przechwyceniem zdarzenia przychodzacego maila.
Ma ktos jakis pomysl ?
Mi sie nasuwa najprostsze: Nasluchiwanie skrzynki odbiorczej co pare sekund w poszukiwaniu konkretnego tematu emaila.

Tylko ze to jest wlasny serwer pocztowy, i nie wiem: moze jest mozliwe aby wywolal sie skrypt/exek/usluga jesli temat emaila bedzie o konkretnej nazwie.

0

skoro „własny” serwer pocztowy, to może napisz, jakie oprogramowanie serwera tam siedzi...

0

A ja w tym czasie zrobilem przy uzyciu Indy 9 sprawdzanie na onet poczcie.
Dziala to tak ->
loguje sie na poczte (ustala ile jest wiadomosci)
Za 9 sekund znow sie loguje i sprawdza czy poprzednia ilosc wiadomosci pasuje do tej co jest jesli nie to oznaka ze jest nowy email - odczytuje temat jesli jest to taki jak chcesz zrobisz sobie odpowiedz na maila. Kod:

procedure TForm1.Button1Click(Sender: TObject);
begin
  IdMessage1.Clear;
  pop3.Host := 'pop3.poczta.onet.pl';
  pop3.Port := 110;
  pop3.Username := '[email protected]';
  pop3.Password := 'haslo';
  if not pop3.Connected then
    pop3.Connect(-1);
    
  if pop3.Connected then
  begin
    wiadomosci := pop3.CheckMessages;
    if tyle_jest = 0 then
    begin
      tyle_jest := wiadomosci;
      pop3.Disconnect;
      Memo1.Lines.Add('Sprawdz aktualny stan - teraz jest '+IntToStr(tyle_jest));
      IdMessage1.Clear;
    end else
    begin
      if tyle_jest < wiadomosci then
      begin
        Memo1.Lines.Add('Jest nowa wiadomosc');
        tyle_jest := pop3.CheckMessages;
        pop3.Retrieve(tyle_jest,IdMessage1);
        if IdMessage1.Subject = 'test' then
        begin
          //tutaj zrobisz sobie wyslanie maila
          Memo1.Lines.Add('Jest wlasnie temat przy ktorym ma wystapic jakies zdarzenie =]');
        end;
        pop3.Disconnect;
        IdMessage1.Clear;
      end else
        Memo1.Lines.Add('Brak nowych wiadomosci, odebrane '+IntToStr(pop3.CheckMessages)+' i w zmiennej '+IntToStr(tyle_jest));
        pop3.Disconnect;
        IdMessage1.Clear;
    end;
  end;
  spr_mail.Create(False);
end;

link do programu:

http://wyslijto.pl/plik/u1r4olcjzu

nie jest to profesjonalne rozwiazanie ale dziala :-)

0

Witam
Podepnę się do tematu bo jest dosyć ciekawy, kiedyś też myślałem o autorespondrze jednak nie wiem jak zrobić pewną rzecz.
Pobieram nagłówki listów do Listview, co 30 sekund. Gdy przyjdzie list to jak teraz zrobić, aby go jakoś oznaczyć że został odczytan, tak aby znów nie pobierał wszystkiego TYLKO NOWE? Usuwać przeczytane (ładować je do "przeczytane")?? Tylko rzecz w tym jak zapisywac zawartość listu + nadawca +temat? Do HTML?

0

Mozesz wiadomosci ktore sa juz przeczytane dodac do tablicy a potem przeszukiwac czy jest juz taki mail. Malo genialny pomysl ale jednak by dzialal i nie dodawal by juz dodanych emaili z powrotem do TListView.

0

nieobeznany, idealnie dobrales sobie nicka..

twoj post to sie ma do tematu jak piernik do wiatraka..

0

Faktycznie zbyt szybko chcialem odpowiedziec.. Zaraz przeprawie.

0
Azarien napisał(a)

skoro „własny” serwer pocztowy, to może napisz, jakie oprogramowanie serwera tam siedzi...

no własnie potem uzupelnie.
Własny, ale w firmie. Nie znam dokladnie parametrów.
@olesio, no czyli sprawdzenie co jakis czas ilosc maili. Jak sie dowiem jakie oprogramowanie dokladnie jest, to moze inny sposob sie jeszcze znajdzie ;-P

0
  1. Własny serwer czyli NAPISANY PRZEZ CIEBIE i tak to chyba każdy zrozumiał.
  2. za 32ojro masz The Bat! Profesional, który takie rzeczy ma w standardzie. Pomijając, że lepszego klienta pocztowego jeszcze nie znalazłem to 120zł dla firmy to chyba nie jest niebotyczna kwota...
0
Nieobeznany napisał(a)

A ja w tym czasie zrobilem przy uzyciu Indy 9 sprawdzanie na onet poczcie.
Dziala to tak ->
loguje sie na poczte (ustala ile jest wiadomosci)
Za 9 sekund znow sie loguje i sprawdza czy poprzednia ilosc wiadomosci pasuje do tej co jest jesli nie to oznaka ze jest nowy email - odczytuje temat jesli jest to taki jak chcesz zrobisz sobie odpowiedz na maila.

Na dłuższą metę sprawdzanie liczby wiadomości jest do bani. Chodzi szczególnie o sytuacje jak ktoś korzysta z kilku programów pocztowych (np z różnych komputerów), albo jak jedną skrzynkę obsługuje kilku użytkowników (np [email protected]).

Lepszym rozwiązaniem jest korzystanie z TIdPOP3.UIDL. Ta metoda zwraca listę UIDL'i wiadomości na serwerze, i to tą listę powinno się zapisywać i porównywać przy następnym sprawdzaniu. Aha, te UIDL'e mają na początku numer wiadomości a potem spację i unikalny ciąg znaków, trzeba sobie te numery wyciąć żeby łatwiej było porównywać (bo po usunięciu wiadomości ze środka wszystko się przesuwa).

b

0

Ja nie udzielałem się do tej pory w temacie, ale zostałem wywołany przez maciejmt,
także napisałem automatycznego respondera do e-maili. Przetestowany z kontem
na poczta.o2.pl i działa ok. Jeżeli na skrzynce znajdują się e-maile, o określonym
w polu edycyjnym temacie to program odpisze na e-maile z nagłowka i usunie te
wiadomości. Oczywiście treść wiadomości jak i jej temat możemy ustalić sami, a
w razie potrzeby dodać również załącznik do wiadomości. Kod jest przejrzysty
wedlug mnie, więc tóbice z nim co chcecie, powinniście zrozumieć ideę, a i ja w
programie użyłem Synapse, jak komuś się nie podoba to nie pobierajcie. A plik
na: http://www.speedyshare.com/files/24504218/autor_response_email.rar

1 użytkowników online, w tym zalogowanych: 0, gości: 1