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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2009, 19:08   #1
micaell
Пользователь
 
Аватар для micaell
 
Регистрация: 01.12.2006
Сообщений: 32
Восклицание Как прикрепить файл к письму?

Нашёл вот такой исходник! Работает, но не пойму как прикрепить файл!


Код:
procedure TForm1.Button4Click(Sender: TObject); 
begin 
   SMTP.Host:='mail.58r.ru'; // адрес почтового сервера 
   SMTP.Port:=25; // порт по которому будет осуществляться подключение 
   SMTP.Username:='test+58r.ru'; // логин пользователя 
   SMTP.Password:='12345666'; // пароль пользователя 
   SMTP.AuthenticationType:=atLogin; // тип подключения к серверу - с авторизацией 
   with IdMessage do 
      begin 
        Body.Assign(Memo1.Lines); // передача данных из memo в компонент IdMessage, для последующей отправки 
        From.Text := 'test@58r.ru'; // майл отправителя письма 
        Recipients.EMailAddresses := 'test@58r.ru'; // майл получателя письма 
        Subject := 'Programmersclub.ru'; // тема письма 

        end; 

      SMTP.Connect; // соединение с почтовым сервером 
         try 
      showmessage('Произошло подключение к серверу'); // сообщение о удачном подключении к серверу 
      SMTP.Send(IdMessage); // отправка письма на сервер 
         finally 
           SMTP.Disconnect; // разрыв соединения 
         end; end;
La iniciativa, control, respeto - las prioridades del vencedor.

Последний раз редактировалось mihali4; 08.02.2010 в 22:29.
micaell вне форума Ответить с цитированием
Старый 15.03.2009, 15:22   #2
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

открываем файл

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if OpenDialog1.Execute
 then Edit1.Text:=OpenDialog1.FileName;
end;

загружаем 

if FileExists(Edit1.Text)
 then TIdAttachment.Create(MailMessage.MessageParts,Edit1.Text);

Последний раз редактировалось mihali4; 08.02.2010 в 22:30.
hacknet вне форума Ответить с цитированием
Старый 17.03.2009, 13:39   #3
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

Тоже нашёл эту программу. вот только не понял как получать вложения письма...

вод код получения
Код:
 POP3.Host:='192.168.220.99'; // адресс почтового сервера
 POP3.Port:=110;           // порт по которому будет осуществляться подключение
 POP3.Username:='tea@vod.mar.ru'; // Логин пользователя
 POP3.Password:='12345666';   // пароль пользователя
 IdMessage.Clear; // очистка буфера для сообщения
 POP3.Connect; // подключение по протоколу POP3, по настрокам в компоненте IdPOP3, с именем POP3
 Memo1.Clear;   // очистка компонента memo для отображения текста письма.
 POP3.Retrieve(1,IdMessage);  // получение одного сообщения
 Memo1.Lines.AddStrings(IdMessage.Body); // передача сообщения из компонента IdMessage в memo

 // вывод в компоненты Label информации о сообщении.
 Label1.Caption := IdMessage.From.Text;
 Label2.Caption := IdMessage.Recipients.EmailAddresses;
 Label3.Caption := IdMessage.CCList.EMailAddresses;
 Label4.Caption := IdMessage.Subject;
 Label5.Caption := FormatDateTime('dd mmm yyyy hh:mm:ss', IdMessage.Date);
 Label6.Caption := IdMessage.ReceiptRecipient.Text;
 Label7.Caption := IdMessage.Organization;

 POP3.Delete(1); // удаление с сервера, полученного сообщения
 POP3.Disconnect;   // разрыв связи
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось mihali4; 08.02.2010 в 22:29.
IliaIT вне форума Ответить с цитированием
Старый 17.03.2009, 14:00   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Любые письма с вложениями есть Multipart соответственно надо идти по циклу по всем part-ам письма
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.03.2009, 14:22   #5
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

А можно пример. я просто не совсем понял где это.
вот полистал компонент в помощи.
IdMessage. MessageParts
возможно это где то тут. но точно понять не могу. или я не туда полез?
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 17.03.2009, 15:04   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Именно туда посомтрели.
там есть свойство count, соответственно можно пройти циклом.
А есть еще один метод: у класса IdMessage есть событие oncreateattachment
Код:
procedure (const AMsg: TIdMessage; const AHeaders: TIdStrings; var AAttachment: TIdAttachment)
думаю обрабатывая это событие будет гоаздо удобней)
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как текстовый файл в формате word 2007 переделать в файл в формате ZAY JULIA Microsoft Office Word 13 09.06.2010 19:43
Как записать файл в файл программы? Хамяг Общие вопросы Delphi 2 02.11.2008 16:01
прикрепить к фотке прогу alexey_001 Общие вопросы Delphi 1 06.12.2007 07:14
Как прикрепить рисунок к рисунку GrEFon HTML и CSS 2 26.11.2007 17:21