Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Вниз

idsmtp отправка письма   Найти похожие ветки 

 
Алексей Филонович   (2006-12-07 12:59) [0]

Есть листбокс,там список е-мэйл адресов сотрудников нашей компинии,
внутри своя сеть и у каждого есть свой внутрисетевой е-мэйл

суть в том чтобы вовремя оповещать всех о каких то изменениях,для этого было решено сделать рассылку по ящикам.
У меня возникли проблемы,помогите решить.

привожу сделанный код:
button1.onclick;
var
i:integer;
begin
Messages.Body.Add(memo1.Text);
Messages.From.Text := "secr@home.net";
Messages.Subject := edit1.Text;
Messages.contentType:= "text/plain";
Messages.CharSet:= "Windows-1251";
IdSMTP1.Port:=25;
IdSMTP1.Host := "home.net";
IdSMTP1.AuthenticationType := atLogin;
IdSMTP1.UserId := "...";
IdSMTP1.Password := "...";
while listbox1.Items.Count>i do
Messages.Recipients.EMailAddresses :=listbox1.Items.Strings[i];
IdSMTP1.Connect();
If IdSMTP1.Connected then
Begin
IdSMTP1.Send(Messages);
End;
IdSMTP1.Disconnect;

в моем понятии данный алгоритм должен работать следующим образом:
цикл по адресам из листбокса,далее отправка письма и так повторение пока не закончаться адреса.
что я делаю не так


 
Max Zyuzin ©   (2006-12-07 13:52) [1]

>Алексей Филонович   (07.12.06 12:59)
i := 0;
while listbox1.Items.Count>i do
begin
Messages.Recipients.EMailAddresses :=listbox1.Items.Strings[i];
IdSMTP1.Connect();
If IdSMTP1.Connected then IdSMTP1.Send(Messages);
IdSMTP1.Disconnect;
inc(i);
End;


 
Max Zyuzin ©   (2006-12-07 13:55) [2]

Возможно не нужно коннектится каждый раз... перед отправкой. очередного письма.

А вообще проще создать группу на самом сервере и рассылать группе. Программы вообще не понадобится


 
Рамиль ©   (2006-12-07 14:15) [3]


> внутри своя сеть и у каждого есть свой внутрисетевой е-мэйл

А зачем решать задачу через одно место? Варианты
1. Создать группу рассылки в почтовом клиенте.
2. Создать группу рассылки на сервере.


 
iXT   (2006-12-07 14:20) [4]


> в моем понятии данный алгоритм должен работать следующим
> образом:
> цикл по адресам из листбокса,далее отправка письма и так
> повторение пока не закончаться адреса.

Не верно - На сервер уйдет одно сообщение! Никаких тут циклов нет!


 
iXT   (2006-12-07 15:35) [5]

Пардон, вообще ничего не уйдет.

2 Max Zyuzin ©   (07.12.06 13:52) [1] [2]
 Вы уверены в рациональности этого?

Я бы предложил:
Message.Clear; (не видно откуда оно берется)
for i :=0 to Listbox.Item.Count - 1 do
 Message.Recipients.Add(...


 
Max Zyuzin ©   (2006-12-07 16:19) [6]

>iXT   (07.12.06 15:35) [5]
Нет не уверен, по этому я в том посте 2-й абзац и написал


 
iXT   (2006-12-07 16:32) [7]


> Возможно не нужно коннектится каждый раз... перед отправкой.
>  очередного письма.


Этого тоже касается!


> А вообще проще создать группу на самом сервере и рассылать
> группе. Программы вообще не понадобится

Это я не рассматривал! Вернее не считаю. Это уже не Delphi

P.S.
 Давайте возможность автору самому найти свои ошибки, хоня ИМХО.


 
Max Zyuzin ©   (2006-12-08 08:50) [8]

>iXT   (07.12.06 16:32) [7]
>Это я не рассматривал! Вернее не считаю. Это уже не Delphi
Это не дельфи, согласен, зато эффективнее значительно :)


 
Алексей Филонович   (2006-12-08 16:25) [9]

нашел,разобрался
подскажите только куда вставить прогрессбар чтобы он показывал процесс отправки писем?
Заранее благодарю.
А.Ф.


 
Anatoly Podgoretsky ©   (2006-12-08 16:32) [10]

> Алексей Филонович  (08.12.2006 16:25:09)  [9]

На форму


 
iXT   (2006-12-08 16:32) [11]


> Алексей Филонович   (08.12.06 16:25) [9]

Зачем???

повторяю, достаточно одного письма со списком получателей!

А TProgressBar Ставится на форму (или др. некоторые визуальные компоненты).


 
Алексей Филонович   (2006-12-08 16:39) [12]

достаточно,но у меня так:
for i := 0 to flatlistbox1.Items.Count-1 do
begin
 Messages.Recipients.EMailAddresses :=flatlistbox1.Items.Strings[i];
 IdSMTP1.Connect();
  If IdSMTP1.Connected then  IdSMTP1.Send(Messages);
IdSMTP1.Disconnect;

работает нормально,только интересно что быстрей работает,как у меня или предложенный вами вариант?

насчет прогрессбара я про код,куда в этих строчках вставить его


 
iXT   (2006-12-08 16:53) [13]


> достаточно,но у меня так:


А почему?
> for i := 0 to flatlistbox1.Items.Count-1 do
> begin
>  Messages.Recipients.EMailAddresses :=flatlistbox1.Items.
> Strings[i];
>  IdSMTP1.Connect();

Если SMTP сервер один, то зачем каждый раз к нему присоединяться?

> работает нормально,только интересно что быстрей работает,
> как у меня или предложенный вами вариант?

К гадалке не ходи :)

> насчет прогрессбара я про код,куда в этих строчках вставить
> его

Очевидно что после отправки сообщения


 
Max Zyuzin ©   (2006-12-08 16:53) [14]

>Алексей Филонович   (08.12.06 16:39) [12]
Предложеный нами вариант работает значительно быстрее... прямо пропорционально количеству адресатов :)


 
Anatoly Podgoretsky ©   (2006-12-08 16:55) [15]

> Алексей Филонович  (08.12.2006 16:39:12)  [12]

Быстрее всего работает список рассылки на сервере, потом список на клиенте и хуже всего рассылка по списку.


 
Anatoly Podgoretsky ©   (2006-12-08 16:56) [16]

> iXT  (08.12.2006 16:53:13)  [13]

> Очевидно что после отправки сообщения

А можно до, зависит от психологии, главное внутри цикла.


 
iXT   (2006-12-08 16:58) [17]


> Anatoly Podgoretsky ©   (08.12.06 16:55) [15]

Ну ему же придется тогда и сервер изучать :) Тут предлагали, даже не отреагировал.


 
Алексей Филонович   (2006-12-08 17:04) [18]

Быстрее всего работает список рассылки на сервере

Спасибо.Работает значительно быстрее!!!


 
Anatoly Podgoretsky ©   (2006-12-08 18:54) [19]

> iXT  (08.12.2006 16:58:17)  [17]

Чего изучать, как в отдельной строчке ввести емайл?
Неужели это не подъемно?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.043 c
2-1165335407
Галинка
2006-12-05 19:16
2006.12.24
События мыши


2-1165225696
Scavenger
2006-12-04 12:48
2006.12.24
Дата и время


15-1165070881
dzmitry[li]
2006-12-02 17:48
2006.12.24
Пульт ДУ для компьютера


15-1162106521
xayam
2006-10-29 10:22
2006.12.24
Вопрос для физиков


4-1155733452
Владимир Владимирович
2006-08-16 17:04
2006.12.24
UpdateResource (изменение данных в исполняемом файле)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский