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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2010, 11:59   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
Радость по отправке письма с файлом

вот тут написал человек код
Код:
procedure  S_mail(Atta:string);
var smtp : TIdSMTP;
    msg  : TIdMessage;
begin
try
  smtp := TIdSMTP.Create(nil);
  smtp.AuthenticationType := atLogin;
  smtp.Username := 'LOGIN';
  smtp.Password := 'PASSWORD';
  smtp.Host     := 'smtp.yandex.ru';
  smtp.Port     := 25;
  smtp.Connect;
  if smtp.Authenticate then
  begin
    msg := TIdMessage.Create(nil);
    msg.Subject := Form1.Edit2.Text;
    msg.Body.Add(Form1.Memo1.Text);
    msg.From.Text := 'belmilk@yandex.ru';
    msg.Recipients.EMailAddresses := Form1.Edit1.Text;
    if FileExists(Atta) then
    TIdAttachment.Create(msg.MessageParts,Atta)
    else
     begin
       ShowMessage('Сообщение не отправлено!'+#13+'Обратитесь к программистам!!!'+#13+'Не могу подгрузить файл!!!');
       Exit;
     end;
    smtp.Send(msg);
    ShowMessage('Сообщение отправлено');
    smtp.Disconnect;
    msg.Free;
  end else ShowMessage('Сообщение не отправлено!');
  smtp.Free
  finally
   end;  
end;
но я не понимаю где тут крепиться файл??? и как его прикрепить? через OpenDialog1
cargo29 вне форума Ответить с цитированием
Старый 18.12.2010, 12:38   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Код:
 if FileExists(Atta) then
    TIdAttachment.Create(msg.MessageParts,Atta)
p51x вне форума Ответить с цитированием
Старый 18.12.2010, 14:25   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
 if FileExists(Atta) then
    TIdAttachment.Create(msg.MessageParts,Atta)
а как это сделать через opendialog????
cargo29 вне форума Ответить с цитированием
Старый 18.12.2010, 17:33   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Код:
if opendialo then S_mail(FileName);
p51x вне форума Ответить с цитированием
Старый 18.12.2010, 21:20   #5
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
if opendialo then S_mail(FileName);
так ?? я вообще не понимаю куда и что (((


Код:
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)
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
 procedure   S_mail(Atta:string);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.S_mail(Atta: string);
var smtp : TIdSMTP;
    msg  : TIdMessage;
begin
try
  smtp := TIdSMTP.Create(nil);
  smtp.AuthenticationType := atLogin;
  smtp.Username := '';
  smtp.Password := '';
  smtp.Host     := 'smtp.yandex.ru';
  smtp.Port     := 25;
  smtp.Connect;
  if smtp.Authenticate then
  begin
    msg := TIdMessage.Create(nil);
    msg.Subject := Form1.Edit2.Text;
    msg.Body.Add(Form1.Memo1.Text);
    msg.From.Text := 'cargo29@ta.ru';
    msg.Recipients.EMailAddresses := Form1.Edit1.Text;
    if FileExists(Atta) then
    TIdAttachment.Create(msg.MessageParts,Atta)
    else
     begin
       ShowMessage('Сообщение не отправлено!'+#13+'Обратитесь к программистам!!!'+#13+'Не могу подгрузить файл!!!');
       Exit;
     end;
    smtp.Send(msg);
    ShowMessage('Сообщение отправлено');
    smtp.Disconnect;
    msg.Free;
  end else ShowMessage('Сообщение не отправлено!');
  smtp.Free
  finally
   end;



end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
S_mail(opendialog1.FileName);
end;

end.
cargo29 вне форума Ответить с цитированием
Старый 21.12.2010, 19:46   #6
Бутаков_Сергей
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 55
По умолчанию

В прикреплении исходник со все что тебе надо! Код написан легко, думаю проблемы не возникнут.
Вложения
Тип файла: rar StudMailer.rar (336.4 Кб, 34 просмотров)
Бутаков_Сергей вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с кодировкой при отправке письма!!! $T@LKER Работа с сетью в Delphi 2 05.08.2010 21:53
Кодировка при отправке запроса Voody Работа с сетью в Delphi 4 16.12.2009 12:26
ошибка при отправке D_E_N Работа с сетью в Delphi 11 01.11.2009 00:41
Многопоточность при отправке почты sanchopansa Работа с сетью в Delphi 4 04.10.2008 14:57