Массовая рассылка почты с помощью Idsmtp

  • Автор темы slavakaram
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

slavakaram

#1
Здравствуйте!
Для массовой рассылки почты я использую компонент idSMTP. С небольшим количеством адресов все работает хорошо, но когда адресов больше 10 (каждый раз разное количество), то начиная с n-го адреса выскакивает исключение EIdProtocolReplyError.
Может, кто-нибудь сталкивался с этой проблемой? Наверное, это на сервере стоит какая-нибудь блокировка SPAMа. Подскажите, что делать: исправлять код или перенастраивать почтовый сервер?
 
C

Coldfate

#2
А может, Вы превысили лимит количества сообщений. Например, на Яндексе не более 150 сообщений в день, на мэйле, по-моему, не более 3 в минуту. А вот на www.30gigs.com можно вообще указать любой адрес отправителя, таким образом, анонимное письмо. Только (вот зараза!) подключиться к ним через смтп или имап не получается :rolleyes:. Попробуй поменять сервер
 
R

root

#4
Для: slavakaram
try
//подключаемся или проверяем почту или что нужно
except
on E: EIdProtocolReplyError do
//пишем в мемо или лог
Memo.Lines.Add(DateTimeToStr(Now) + ': ' + E.Message);
end;
потом будем разбирать
 
S

slavakaram

#5
Сообщение "Recipients number quota exceeded")
Причем если к письму ничего не присоединять, то это исключение вываливается намного позже, чем если присоединить даже какой-нибудь банальный jpg.
Видимо, действительно на сервере какие-то антиспамовские настройки стоят((
Время между посылками я делаю 2 секунды.
 
R

root

#6
Для: slavakaram
ну вот видиет :) сами на свой вопрос ответили :)
 
S

shota87

#8
добрый день подскажите кто что знает вот я написал программульку такую вот надеюс разберетес тут видает ошибки не судите строга я новичок в этом деле и мне нужно совет что бы кто небуд подсказал что тут лишнее что убрат а что нет спасибо...

вот сам код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdSMTP, IdMessage;

type
TForm1 = class(TForm)
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
procedure IdSMTP1Connected(Sender: TObject);
procedure IdMessage1InitializeISO(var VTransferHeader: TTransfer;
var VHeaderEncoding: Char; var VCharSet: String);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdSMTP1Connected(Sender: TObject);
begin
idsmtp1.Connect(5000);
if Connected=True then IdSMTP1.Send(Msg);
end;

procedure TForm1.IdMessage1InitializeISO(var VTransferHeader: TTransfer;
var VHeaderEncoding: Char; var VCharSet: String);
begin
Msg.Recipients.EMailAddresses:='shotalomsadze@yandex.ru,batura-87@yandex.ru';
Msg.From.Address:='batura-87@yandex.ru';
Msg.Body.Text:='текст сообшениа на DELPHI';
Msg.Date:=strToDate('01.02.2009');
end;
IdSMTP1.Disconnect;
end;

---------------------------
вот ошибки какие программа видает:
[Error] Unit1.pas(15): Undeclared identifier: 'TTransfer'
[Error] Unit1.pas(33): Undeclared identifier: 'Connected'
[Error] Unit1.pas(33): '(' expected but ')' found
[Error] Unit1.pas(34): Incompatible types: 'TIdMessage' and 'tagMSG'
[Error] Unit1.pas(39): Object or class type required
[Error] Unit1.pas(39): Missing operator or semicolon
[Error] Unit1.pas(40): Object or class type required
[Error] Unit1.pas(41): Object or class type required
[Error] Unit1.pas(42): Object or class type required
[Error] Unit1.pas(44): Declaration expected but identifier 'IdSMTP1' found
[Error] Unit1.pas(45): '.' expected but ';' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
*********************************************************
если кто может помогите пожалуйста очень нужно спасибо
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#9
школота.. ой школота..
1.
Эту программу написал не ты. Ты это тупо выдрал из какой-то не лучшего качества статьи
2.
[Error] Unit1.pas(33): Undeclared identifier: 'Connected' Это про
if Connected=True then IdSMTP1.Send(Msg); - вот этот момент. Переменная конктед нигде не объявлена.
3.
после последнего енда, должна стоять точка.
4.
[Error] Unit1.pas(15): Undeclared identifier: 'TTransfer' - вот это говорит о том, что у тебя нигде не объявлен класс ттрансфер. В юсес нужно добавить модуль, где объявлен этот класс. Какой модуль - F1.
5.
[Error] Unit1.pas(34): Incompatible types: 'TIdMessage' and 'tagMSG' - вот это говорит о не совместимости типов двух обьектов, когда ты значение одного присваиваешь другому.
6.
Все все остальные ошибки могут являться следствием этих...
7. Совет. Пока ТЫ не НАУЧИШЬСЯ писать ГРАМОТНО по-русски - грамотно программировать ты точно не сможешь. Поэтому комп вырубай. Доставай из портфеля учебник русского языка и читай пока не выучишь наизусть.
ПС. Модеры.. Вынесите что ли в отдельную тему.. Этот ребенок явно еще много вопросов задаст)
 
Статус
Закрыто для дальнейших ответов.