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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2011, 15:41   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию Отрпавка Почты

Вот код писаный на делфи 2009 как сделать правильно вложение в письмо??



Код:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, ImgList, StdCtrls, inifiles, IdMessage,
  IdCookieManager, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, idattachment, Buttons, ComCtrls;

type
  TForm4 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Memo1: TMemo;
    Edit5: TEdit;
    Button2: TButton;
    Button1: TButton;
    Сайт: TComboBox;
    BitBtn1: TBitBtn;
    TrayIcon1: TTrayIcon;
    ImageList1: TImageList;
    Timer1: TTimer;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    OpenDialog1: TOpenDialog;
    IdSMTP1: TIdSMTP;
    IdAntiFreeze1: TIdAntiFreeze;
    IdCookieManager1: TIdCookieManager;
    IdMessage1: TIdMessage;
    MainMenu1: TMainMenu;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    safe: TCheckBox;
    timeget: TCheckBox;
    ColorDialog1: TColorDialog;
    Timer2: TTimer;
    BitBtn2: TBitBtn;
    Button3: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;
   ini:Tinifile;
implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm4.BitBtn2Click(Sender: TObject);
begin
ini.WriteBool('tools','1', safe.Checked);
ini.WriteBool('tools','2', timeget.Checked);
end;

procedure TForm4.Button1Click(Sender: TObject);
var
 att:Tidattachment;
begin
ini.WriteString('mail','login', edit1.Text);
ini.WriteString('mail','pass', edit2.Text);
IdSMTP1.Host:='smtp.yandex.ru';
IdSMTP1.Port:=25;
IdSMTP1.Username:='MegaDom2011';
IdSMTP1.Password:='123456';
IdMessage1.From.Text:='MegaDom2011@ya.ru';
IdMessage1.Body.Text:='dasdsadsadsadsadsadsadsadsadsadsadsadsada';
IdMessage1.Subject:='fdsfdsfdsfdfdsfsdfdsfdsf';
IdMessage1.Recipients.EMailAddresses:='MegaDom2011@ya.ru';
IdMessage1.MessageParts.Clear;
att:=TIdAttachment.Create(IdMessage1.MessageParts);
att.LoadFromFile(OpenDialog1.FileName);
idsmtp1.Connect();
if idsmtp1.Connected then
begin
idsmtp1.Send(IdMessage1);
MessageDlg('Отправка завершена',mtInformation,[mbOk],0);
end;
Idsmtp1.Disconnect;
end;

procedure TForm4.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute=true then
begin
edit5.Text:=opendialog1.FileName;
end
end;

procedure TForm4.Button3Click(Sender: TObject);
begin
if ColorDialog1.Execute then
form4.Color:=colordialog1.Color;
end;

procedure TForm4.FormCreate(Sender: TObject);
begin
 ini:=Tinifile.Create('C:\windows\pochta.ini');
 ini.ReadString('mail','login', 'Логин');
 ini.ReadString('mail','pass', 'Парол');
 ini.ReadString('mail','host', 'Сайт');
if ini.ReadString('tools','1','0')='1' then
safe.Checked:=true;
if ini.ReadString('tools','2', '0')='1' then
timeget.Checked:=true;
end;

procedure TForm4.FormDestroy(Sender: TObject);
begin
ini.Free;
end;

procedure TForm4.N1Click(Sender: TObject);
begin
show;
end;

procedure TForm4.N2Click(Sender: TObject);
begin
hide;
end;

procedure TForm4.N3Click(Sender: TObject);
begin
close;
end;

procedure TForm4.N5Click(Sender: TObject);
begin
hide;
end;

procedure TForm4.N6Click(Sender: TObject);
begin
PageControl1.TabIndex:=1;
end;

procedure TForm4.N8Click(Sender: TObject);
begin
close;
end;

procedure TForm4.Timer1Timer(Sender: TObject);
begin
label1.Caption:=inttostr(length(memo1.Text));
if timeget.Checked=true then
Label4.Caption:=timetostr(time);
end;

end.
cargo29 вне форума Ответить с цитированием
Старый 22.01.2011, 16:32   #2
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Знает кто нить?
cargo29 вне форума Ответить с цитированием
Старый 22.01.2011, 18:19   #3
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Как я понял ни кто не знает
cargo29 вне форума Ответить с цитированием
Старый 22.01.2011, 21:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Увы...
По крайней мере я точно не в курсе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.01.2011, 00:20   #5
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Увы...
По крайней мере я точно не в курсе.
Жаль ((( какая то делфи версия крива даже инфы по ней нету
cargo29 вне форума Ответить с цитированием
Старый 23.01.2011, 01:27   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

причем тут Делфи?
вы используете Indy собственно говоря на форуме как то были примеры.

да и плюс к инди документацию/примеры не смотрели?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.01.2011, 02:02   #7
dosha
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 224
По умолчанию

гулить учись http://www.cyberforum.ru/delphi-netw...tml#post878971
dosha вне форума Ответить с цитированием
Старый 23.01.2011, 18:18   #8
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от dosha Посмотреть сообщение
вот ты дал там есть код для 2009 НО ОН НЕ РАБОТАЕТ ПОЧЕМУ ТО У МЕНЯ


Код:
-:: Для Delphi 2009, 2010 ::-
 
...
 
type
TDummyEncode = class
protected
class procedure SetCharSet(var VHeaderEncoding: Char; var VCharSet: string);
end;
 
{ TEncode }
 
class procedure TDummyEncode.SetCharSet(var VHeaderEncoding: Char;
var VCharSet: string);
begin // теперь всегда используем utf8
VCharSet := IdCharsetNames[ idcsUTF_8 ]
end;
 
procedure TForm1.SendMail();
var
Message : TIdMessage;
begin
IdSMTP1.Host := 'Host';
IdSMTP1.Username :='UserName';
IdSMTP1.Password:='Password';
Message := TIdMessage.Create( nil );
try
Date := Now;
Body := Memo.Lines;
From.Text := 'From';
Recipients.EMailAddresses := 'EMailAddresses ';
Subject := 'Subject';
From.Name := 'Name';
From.Address := 'Adress@adr.ru';
OnInitializeISO := TDummyEncode.SetCharSet;
TIdAttachmentFile.Create( Message.MessageParts, 'c:\файл.расширение' );
IdSMTP1.Connect;
try
IdSMTP1.Send(Message);
finally
IdSMTP1.Disconnect;
end;
finally
FreeAndNil( Message );
end;
end;
cargo29 вне форума Ответить с цитированием
Старый 23.01.2011, 18:44   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

конкретно, какие ошибки и где?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.01.2011, 19:20   #10
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
конкретно, какие ошибки и где?
вот эти все строки подчекнул

Код:
try

Date := Now;

Body := Memo.Lines;

From.Text := 'From';

Recipients.EMailAddresses := 'EMailAddresses ';



From.Name := 'Name';

From.Address := 'Adress@adr.ru';

OnInitializeISO := TDummyEncode.SetCharSet;

TIdAttachmentFile.Create( Message.MessageParts, 'c:\файл.расширение' );


и что делает try и finally ???

он даже просто письмо не хочет отправить без вложения
cargo29 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взлом эл. почты. Юлия Н Безопасность, Шифрование 5 27.07.2010 13:52
Отправка почты Gurt87 Работа с сетью в Delphi 1 24.03.2010 22:51
Отправка почты Fo][ Работа с сетью в Delphi 1 20.01.2009 23:15
Отправка почты Fenix Nexsais Работа с сетью в Delphi 5 06.09.2007 22:27