Ошибка при отправке почты

EmilRegis
Дата: 07.05.2011 12:52:49
Здравствйте. Простенький клиент для отправки почты валится по непонятной причине.
ошибка exception class EidSMTPReplyError with message ''

Ошибка возникает в том случае, когда пытаюсь отправить почту на несколько адресов.

  for I := 1 to 30 do
  begin
    s:=Excel.Range['A'+IntToStr(I)];
    IF(s<>null) and (length(s)>0) then
    begin
       if(length(str) >0) then
         str := str + ', ' + s
       else
            str := s;
       end;
    end;
    IdMessage1.Recipients.EMailAddresses := str;
    SMTP.Send(IdMessage1);
EmilRegis
Дата: 07.05.2011 12:56:03
при этом, если просто пишу IdMessage1.Recipients.EMailAddresses := 'email1@mail.ru, email2@mail.ru';
то почта отправляется, а если через присваиваемую переменную, то нет..Проверил, в переменной лежит точно такая же строка
ДжекНепотрошитель
Дата: 07.05.2011 13:01:03
А "точно такая же" - это с двумя адресами, или с 30-ю?
EmilRegis
Дата: 07.05.2011 13:03:07
ДжекНепотрошитель,

с 2, 3 - 30..не важно..я вывожу showmessage(str); - там например строка с 2 адресами. И при отправке вылетает пустое сообщение об ошибке
EmilRegis
Дата: 07.05.2011 13:04:43
EmilRegis,

адреса из экселевского файла достаются, может там какие-то пустые символы прилепляются?) трим не помог
Дураг
Дата: 07.05.2011 13:26:31
EmilRegis
Здравствйте. Простенький клиент для отправки почты валится по непонятной причине.
ошибка exception class EidSMTPReplyError with message ''

Ошибка возникает в том случае, когда пытаюсь отправить почту на несколько адресов.

  for I := 1 to 30 do
  begin
    s:=Excel.Range['A'+IntToStr(I)];
    IF(s<>null) and (length(s)>0) then
    begin
       if(length(str) >0) then
         str := str + ', ' + s
       else
            str := s;
       end;
    end;
    IdMessage1.Recipients.EMailAddresses := str;
    SMTP.Send(IdMessage1);


а где end от for ?
EmilRegis
Дата: 07.05.2011 13:34:18
Дураг
EmilRegis
Здравствйте. Простенький клиент для отправки почты валится по непонятной причине.
ошибка exception class EidSMTPReplyError with message ''

Ошибка возникает в том случае, когда пытаюсь отправить почту на несколько адресов.

  for I := 1 to 30 do
  begin
    s:=Excel.Range['A'+IntToStr(I)];
    IF(s<>null) and (length(s)>0) then
    begin
       if(length(str) >0) then
         str := str + ', ' + s
       else
            str := s;
       end;
    end;
    IdMessage1.Recipients.EMailAddresses := str;
    SMTP.Send(IdMessage1);


а где end от for ?

не влез в тестовый пример)) на самом деле он есть
Дураг
Дата: 07.05.2011 13:36:12
EmilRegis
Дураг
пропущено...


а где end от for ?

не влез в тестовый пример)) на самом деле он есть


приведите тогда нормальный пример который не работает.
а то с этого ничего не понятно что у вас там не так...
ДжекНепотрошитель
Дата: 07.05.2011 13:46:18
Дураг
а где end от for ?


Все end'ы у него присутствуют, просто отступы стоят неправильно. Я бы все-таки проверил строку посимвольно.
EmilRegis
Дата: 07.05.2011 14:05:04
вообще мистика какая-то))
В экселевском файле меняю местами почту asd@yandex.ru и asd@mail.ru. Если сначал идёт mail, а потом yandex, то отсылается без проблем. Если наоборот, то валится. Если в файле только почта mail-а то валится, если только yandex-а то отсылается