Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите отправить почту!! [D7, Win95/98, WinXP]


userrrrr ©   (2005-08-23 20:59:00) 

помогите отправить писмо! рисую на форме IdSMTP, IdMessage и кнопку по нажатии на кнопку пишу
procedure TForm1.Button1Click(Sender: TObject);
var
Msg: TIdMessage;
begin
Msg.Subject:='тема сообщения';                
Msg.Recipients.EMailAddresses:='qwerty@front.ru';
Msg.From.Adress:='qwerty@front.ru';            
Msg.Body.Text:='текст сообщения';
IdSMTP1.Port:=25;
IdSMTP1.Host := 'mail.pochta.ru';
IdSMTP1.AuthenticationType:=atLogin;
IdSMTP1.Username:='qwerty';
IdSMTP1.Password:='qwerty';
IdSMTP1.Connect(500);
if IdSMTP1.Connected
then  IdSMTP1.Send(Msg);
end;
программа компилируется без проблем но потом возникает ошибка если сделать Trace into то это на строчке Msg.Subject:='тема сообщения'; если её убрать то потом на Msg.Recipients.EMailAddresses:='qwerty@front.ru'; если убрать все описание Msg то к smtp oн коннектится но письмо все равно не отправляется...


zx   (2005-08-25 12:19:00) [1]

> userrrrr
Попробуй TNMSMTP он проще и легче.


Наиль   (2005-08-25 01:03:00) [2]

>[9]
Перевод: не хватает точки с запятой в предыдущей строчке.
>[8]
try finally нужно писать тогда, когда не может предсказать появление ошибки.
в данном случае, на чужой почтовый сервер ты повлиять не можешь, а значит нужно защищаться от ошибок, которые он может (но не обязан) вызвать в твоей программе.


userrrrr   (2005-08-24 23:37:00) [3]

ну помогите-же...


userrrrr   (2005-08-24 20:59:00) [4]

ктонибудь ответит на мой вопрос пожалуйста!
msg.free; он пишет missing operator or semicolon


userrrrr   (2005-08-24 16:50:00) [5]

try finally обязательно? зачем это вообще надо и что означает? у меня подряд вроде работает:
Msg := TIdMessage.Create(Form1);
Msg.Subject:='тема';
...................
if IdSMTP1.Connected
а как присоеденить аттачмент из нескольких файлов вроде так но так только один файл
TIdAttachment.Create(Msg.MessageParts,'c:\file');
и можно ли какнибудь полегче средствами delphi их сжать?


stone   (2005-08-24 14:25:00) [6]


> userrrrr   (24.08.05 14:15) [6]
> спасибо а как освободить объект с пом. метода Free и зачем?

Обычно это делается так:
Msg := TIdMessage.Create(Form1);
try
 ... действия
finally
 Msg.Free;
end;


userrrrr   (2005-08-24 14:15:00) [7]

спасибо а как освободить объект с пом. метода Free и зачем?


stone   (2005-08-24 13:45:00) [8]


> userrrrr   (24.08.05 13:37) [4]
> Owner: TObject это что???

Указатель на владельца объекта, т.е. объект, при уничтожении которого твой TIdMessage будет автоматически уничтожен. В твоем случае им может являться форма (Form1). Соответствнно будет:
Msg := TIdMessage.Create(Form1);


userrrrr   (2005-08-24 13:37:00) [9]

Owner: TObject это что???


stone   (2005-08-24 13:31:00) [10]


> userrrrr   (24.08.05 13:22) [2]
> пишу Msg := TIdMessage.Create; а он мне Not enough actual
> parameters

Конечно
TIdMessage.Create( Owner: TObject);


userrrrr   (2005-08-24 13:22:00) [11]

пишу Msg := TIdMessage.Create; а он мне Not enough actual parameters


Eraser   (2005-08-23 21:08:00) [12]

вставь вначале кода эту строку Msg := TIdMessage.Create;
...
не забудь потом освободить объект с пом. метода Free.


Наверх

Титульная страница Поиск, карта сайта Написать письмо