Здравствуйте!!! решил попробывать сделать программу, отправка писем на емайлы. использую IdSMTP. отправляю 100 писем, при этом отпраляю 1 письмо и отключаю IdSMTP.Disconnect и повторяется пока не закончится список майлов. смпт рамблер. отсылается 20 30 писем и потом: вылазиют ошибки поспрашивал - говорят: "что спам фильтр включается". возможно как нибудь это исправить??? обойти фильтры? или это другая ошибка! Спасибо!!!
Я отправлял так: Code: uses IdSMTP, IdMessage; procedure TForm1.Sendmail; var M: TIdMessage; SMTP: TIdSMTP; i:integer; begin M := TIdMessage.Create(nil); M.From.Text := '[email protected]'; M.Recipients.Add; M.Recipients.Items[0].Text := '[email protected]'; M.Subject := 'Test'; M.Body.Add('Hello'); SMTP := TIdSMTP.Create(nil); SMTP.AuthenticationType := atLogin; SMTP.Password:='password'; SMTP.Username:='login'; SMTP.Host := 'pop.mail.ru'; SMTP.Connect; if SMTP.Connected then begin For i:=1 to 100 do begin SMTP.Send(M); //Gauge1.Progress:=i; Application.ProcessMessages; end; SMTP.Disconnect; end; end; Ушли-пришли все письма.
нет тоже не помогло 35 писем и ошиька вот код который использую. Code: procedure TForm1.mailer; var files1:string; i:integer; i1,LastLineLineNumber: integer; LMsg: TIdMessage; begin if Timer1.Tag+0 > Memo2.Lines.Count-1 then LastLineLineNumber:= Memo2.Lines.Count-1 else LastLineLineNumber:= Timer1.Tag+0; for i := Timer1.Tag to LastLineLineNumber do begin Memo5.Lines.Add(Memo2.Lines[i]); DelStroki(memo5); end; Timer1.Tag := LastLineLineNumber+1; IdSMTP1.IOHandler:= IdIOHandlerSocket1; IdIOHandlerSocket1.SocksInfo:= IdSocksInfo1; IdIOHandlerSocket1.Open; IdSocksInfo1.Host:=Edit1.Text; IdSocksInfo1.Username:=Edit2.Text; IdSocksInfo1.Password:=Edit3.Text; IdSocksInfo1.Port:=strtoint(Edit4.Text); IdIOHandlerSocket1.Connected; if ComboBox1.ItemIndex=0 then IdSocksInfo1.Authentication:=saUsernamePassword else if ComboBox1.ItemIndex=1 then IdSocksInfo1.Authentication:=saNoAuthentication else IdSocksInfo1.Authentication:=saUsernamePassword; if ComboBox3.ItemIndex=0 then IdSocksInfo1.Version:=svNoSocks else if ComboBox3.ItemIndex=1 then IdSocksInfo1.Version:=svSocks4 else if ComboBox3.ItemIndex=2 then IdSocksInfo1.Version:=svSocks4A else if ComboBox3.ItemIndex=3 then IdSocksInfo1.Version:=svSocks5 else IdSocksInfo1.Version:=svNoSocks; if ComboBox2.ItemIndex=0 then IdSMTP1.AuthenticationType:=atLogin else if ComboBox2.ItemIndex=1 then IdSMTP1.AuthenticationType:=atNone else IdSMTP1.AuthenticationType:=atLogin; IdSMTP1.Username:=Edit9.Text; IdSMTP1.Password:=Edit10.Text; IdSMTP1.Host:=Edit6.Text; IdSMTP1.Port:=strtoint(Edit7.Text); with LMsg do begin LMsg := TIdMessage.Create(nil); From.Address:=Edit12.Text; Sender.Address:=Edit13.Text; Subject:=Edit15.Text; Body.Text:=Memo1.Text; Recipients.EMailAddresses := memo5.Lines.Text; end; if CheckBox1.Checked=true then TIdAttachment.Create(IdMessage1.MessageParts,Edit8.Text) else files1:='no'; with IdSMTP1 do begin Memo4.Lines.Add('Form '+ Edit12.Text); Memo4.Lines.Add('To '+ Memo5.Lines.Text); try Memo4.Lines.Add('Connected'); Socket.Connected; Connect(strtoint(Edit11.Text)); Memo4.Lines.Add('sending message'); if IdSMTP1.Connected=True then IdSMTP1.Send(LMsg); Memo4.Lines.Add('Disconnect'); IdSMTP1.Disconnect; IdIOHandlerSocket1.Close; {LMsg.Free; } Memo4.Lines.Add('-------------------'); sec:=0; memo5.Clear; ProgressBar4.Position:=LastLineLineNumber+1; except on E : Exception do begin if IdSMTP1.Connected then try IdSMTP1.disconnect; except end; Memo4.Lines.Add('Error sending message'); Memo4.Lines.Add(E.Message); end; end; end; end; а вот таймер копирование Code: procedure ShowTime; var buf: string[20]; begin if sec < 10 then buf:=buf + IntToStr(sec) else buf:=buf+IntToStr(sec); form1.label2.Caption:=inttostr(sec); if sec=10 then form1.mailer; end; 30 35писем и вылитает ошибка что только не пробывал.... ед.. только что динамически не знаю как правелно создать.