Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 17:16   #1
KWNlnc
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 39
Восклицание реализовать поток писем. почтового клиента

Доброго времени суток, уважаемые эксперты!

1. у меня общий сервер. с одним логином и паролем TIdMessage
2. клиенты разные. скажем (s := 123 или там 4567)
3. у сервера почтавик компонента TIdMessage

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
attach : TIdAttachment;
msg : TIdMessage;
begin
IdSMTP1.AuthenticationType:= atLogin;
IdSMTP1.Username:='хххххххххххххх';//свое имя
IdSMTP1.Password:='хххххххххххххх;//свой пароль
IdSMTP1.Host:='хххххххххх';//адрес smtp-сервера пример - smtp.mail.ru
IdSMTP1.Port:=25;
msg:=TIdMessage.Create(nil);
msg.ContentType := 'text/html';
msg.CharSet :='windows-1251';
msg.Body.Text := 'Письмо';
msg.Subject:='Название'; 
msg.ContentType := 'text/html';
msg.CharSet :='windows-1251';
msg.Body.LoadFromFile('Путь к файлу который отправляем');
msg.From.Address:='хххххххххххххххх';//свой E-mail
msg.From.Name:='хххххххххххххххххх';//имя отправителя
msg.Recipients.EMailAddresses:='хххххххххххххххх';//адрес получателя 
msg.IsEncoded:=true;
//вложение:
attach:=TIdAttachment.Create(msg.MessageParts,'Путь к файлу который отправляем'); //например C:\arxiv.rar
IdSMTP1.Connect;
if IdSMTP1.Connected then
begin
IdSMTP1.Send(msg);
Showmessage('Письмо ушло');
end;
IdSMTP1.Disconnect;
attach.Free;
Form1.Close;
end;
здесь обратите внимание у почтавика
Код:
msg.Body.LoadFromFile('Путь к файлу который отправляем');
.

теперь вопрос. как реализовать поток писем. одного логина. т.е. почтовика. для разных s := 123 ...

скажем...

s:=123 выбрал C:\MyProg\log.txt и выбрал доставить MyMail@mail.ru

а..

s:=4567 выьрал C:\MyProg\unins.txt и выбрал MyProg@rambler.ru

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

p.s. незабываем. server.exe один! а клиентов несколько от 1 до 1000...
KWNlnc вне форума Ответить с цитированием
Старый 26.04.2010, 20:16   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Спам это плохо ..а теперь ещё и уголовно наказуемое деянии.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 27.04.2010, 10:11   #3
KWNlnc
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 39
По умолчанию

BARNEY, это не спам.
KWNlnc вне форума Ответить с цитированием
Старый 27.04.2010, 11:50   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

в ini или тхт затолкай
типо

123/MyMail@mail.ru/C:\MyProg\log.txt
4567/MyProg@rambler.ru/C:\MyProg\unins.txt

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

в ini можно проще... почитай найдёшь.. можешь и мини БД завести
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 28.04.2010, 00:04   #5
KWNlnc
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 39
По умолчанию

BARNEY, а более подроднее можно?

я вот попытался

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  user: array[0..1000] of string; // это адресаты
  userfile: array[0..1000] of string; // это пути

implementation

{$R *.dfm}

procedure SendAttach(touser: string; attachfile: string);
var
attach : TIdAttachment;
msg : TIdMessage;
begin
Form1.IdSMTP1.AuthenticationType:= atLogin;
Form1.IdSMTP1.Port:=25;
msg:=TIdMessage.Create(nil);
msg.ContentType := 'text/html';
msg.CharSet :='windows-1251';
msg.Body.Text := 'Письмо';
msg.Subject:='Название'; 
msg.ContentType := 'text/html';
msg.CharSet :='windows-1251';
msg.Body.LoadFromFile('Путь к файлу который отправляем');
msg.From.Address:='kurtwagner@mail.ru';//свой E-mail
msg.From.Name:='хххххххххххххххххх';//имя отправителя
msg.Recipients.EMailAddresses:=touser;//адрес получателя !!!!!!!!!!!!!!!!
msg.IsEncoded:=true;
//вложение:
attach:=TIdAttachment.Create(msg.MessageParts, attachfile); //например C:\arxiv.rar !!!!!!!!!!!!!!!!
Form1.IdSMTP1.Connect;
if Form1.IdSMTP1.Connected then
begin
Form1.IdSMTP1.Send(msg);
Showmessage('Письмо ушло');
end;
Form1.IdSMTP1.Disconnect;
attach.Free;
Form1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 user[0] := Edit1.Text;
 userfile[0] := Edit2.Text;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 for i: to 1000 do
begin
 SendAttach(user[i], file[i]);
end;
end;

end.
KWNlnc вне форума Ответить с цитированием
Старый 28.04.2010, 08:40   #6
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

ну во первых надо заполнить массив из тхт или ini

Код:
 user: array[0..1000] of string; // это адресаты
  userfile: array[0..1000] of string; // это пути
как взять значение из ini или тхт на этом форуме полно поищите.

в цикле заполните массив потом Button1Click и всё
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После N отправленых писем сменить имейл, как это реализовать кодом Lauri Общие вопросы Delphi 3 02.04.2010 16:03
Безопасность личного почтового пароля PVA75 Безопасность, Шифрование 5 29.03.2010 20:51
Исходник почтового клиента g0liath Работа с сетью в Delphi 3 17.04.2009 18:24
Создание почтового клиента на Delphi g0liath Работа с сетью в Delphi 2 19.03.2009 01:30