Отправить письмо через веб интерфейс mail.ru

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by bertys, 26 Jan 2012.

  1. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    Зачем его парсить? без него все нормально отправляется. а откуда он берется хз. не смтрел :)
     
  2. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    а на какой урл ты слал запрос?
     
  3. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Вот мой код отправки, что не так:

    PHP:
    Var
    p:tstringlist;
    begin
    p
    :=tstringlist.Create;
    p.add('form_sign='+sign);
    p.add('form_token='+token);
    p.add('text=');
    p.add('direction=re');
    p.add('orfo=rus');
    p.add('files_id=');
    p.add('message=4nkJGClT');
    p.add('old_charset=utf-8');
    p.add('template_id=');
    p.add('HTMLMessage=0');
    p.add('draft_msg=');
    p.add('re_msg=');
    p.add('fwd_msg=');
    p.add('RealName=0');
    p.add('attached_ids=');
    p.add('To=МАИЛ НА КОТОРЫЙ СЛАТЬ');
    p.add('CC=');
    p.add('BCC=');
    p.add('Subject=Привет');
    p.add('Body=Привет');
    p.add('security_image_word=');
    //memo1.Text:=idhttp1.Post('http://e.mail.ru/cgi-bin/sentmsg?ajax_call=1&func_name=send&send=1&logid=1327683613359bfsaejdwyj',p);
    memo1.Text:=idhttp1.Post('http://e.mail.ru/cgi-bin/sentmsg?ajax_call=1&func_name=send&send=1',p);
    end;
     
  4. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    А где все амперсанды в запросе?
    Code:
    &
    Лучше скинь что у тебя реально уходит на e.mail да и ответ тоже.
     
  5. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    амперсанды не нужны, это же пост запрос а не гет
     
  6. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    Амперсанды используются для разделения параметров POST/GET запросов если их больше двух.

    Вся эта строка без них будет одним параметром form_sign.
    И ничего работать не будет.
    Коль на то пошло тогда и символ = может убрать? Зачем вообще разделять имя параметра и значение.

    зы Не знаю как шлет компонент idhttp, может он чего то там добавляет еще.
     
  7. vernite akk=

    vernite akk= New Member

    Joined:
    18 May 2011
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Да он вроде так и делает, у меня в одном клаассе тоже так было зделано на входе массив с параметрами а амперсанды сам проставляеш.
     
  8. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    в делфи при отправке пост запроса в idhttp амперсанды не нужны.
     
  9. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    enigma так ты на винапи пишешь? А winhttp не пробовал?
    На винапи я тоже могу (в масм правда), но какие-то нибудь парсеры проще сделать на компонентах, имхо.
     
  10. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    80
    Likes Received:
    15
    Reputations:
    7
    winhttp не пробовал. wininet устраивает полностью
    Ну не знаю..тут наверное каждому свое.
    Мне проще использовать класс string из стандартной библиотеки.
    зачем еще и компоненты.
     
    #30 enigma, 5 Feb 2012
    Last edited: 5 Feb 2012