![]() |
|
|
#1
|
|||
|
|||
|
Как отправить письмо на электронную почту?
|
|
#2
|
|||
|
|||
|
Смотря что тебе надо:
1. Из клиента: а) просто ShellExecute(...,PChar('mailto:address@server.ru') ,...); б) сформировав тело, прицепив файлы и т.д. - SimpleMAPI 2. Полностью сам - качай демо по Indy (www.indyproject.org) с прямой доставкой или просто SMTP и вперед. |
|
#3
|
|||
|
|||
|
есть код:
Цитата:
|
|
#4
|
|||
|
|||
|
Ну а сам ты как думаешь?
Ты уверен, что по этому адресу вообще есть почтовый сервер? Не считая того, что некоторые СМТП требуют авторизации. Но скорее всего у тебя вылетает Time Out, т.е. по этому адресу нету почтового сервера или он живет на нестандартном порту. |
|
#5
|
|||
|
|||
|
ну что мне тогда надо писать в хосте, если у меня почта на мейле?
|
|
#6
|
|||
|
|||
|
smtp.mail.ru
|
|
#7
|
|||
|
|||
|
Ещё один вопрос. в delphiworld нашёл статью, там код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
with NMSMTP1 do
begin
Host := 'smtp.mailserver.com';
UserID := '___Nikolay';
Connect;
PostMessage.FromAddress := 'DelphiWorld@mail.ru';
PostMessage.ToAddress.Text := 'bestprogramming@mail.ru';
PostMessage.Body.Text := 'Текст письма';
PostMessage.Subject := 'Тема письма';
SendMail;
end;
end;Вот картинка http://avoreg.ru/v.php?id=da52f99ca4...f7230beae62953 Последний раз редактировалось Admin, 24.05.2008 в 21:12. |
|
#8
|
|||
|
|||
|
Ну пусть не вылазит.
Вводи просто без подсказок.а если после запуска выдаст ошибку что не знает PostMessage то компонент левый |
|
#9
|
|||
|
|||
|
Да вы что можно проще..
Цитата:
так как сервер требует авторизации укажи еще и пароль к пользователю. И еще тело сообщения и тема тоже нужны) |
|
#10
|
|||
|
|||
|
В Delphi 7 и 2007 писал от руки:
Цитата:
|
|
#11
|
|||
|
|||
|
ещё пробовал вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
host:='smtp.'+combobox1.Text;
from:=edit1.Text+'@'+combobox1.Text;
if IdSMTP1.Connected=true then
IdSMTP1.Disconnect;
IdSMTP1.Host:=host;
IdSMTP1.Username:=edit1.Text;
IdSMTP1.Password:=edit2.Text;
IdSMTP1.Connect;
if IdSMTP1.Connected then begin
label4.Caption:='Состояние: Готово';
edit3.Enabled:=true;
edit4.Enabled:=true;
memo1.Enabled:=true;
label5.Enabled:=true;
label6.Enabled:=true;
label7.Enabled:=true;
button2.Enabled:=true;
end
else
label4.Caption:='Состояние: Ошибка';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
IdSMTP1.QuickSend(host,edit4.Text,edit3.Text,from,memo1.Text);
end;Последний раз редактировалось Admin, 24.05.2008 в 21:11. |
|
#12
|
|||
|
|||
|
значит такого метода нет в компоненте.Поищи другие методы для отправки почты.
|
|
#13
|
|||
|
|||
|
SMTP.Send(Msg)
Msg - компонент сообщения |
|
#14
|
|||
|
|||
|
Разобрался. Теперь возник ещё пара вопросов. Вот код
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if IdSMTP1.Connected then
IdSMTP1.Disconnect;
IdSMTP1.Host:='smtp.'+combobox1.Text;
IdSMTP1.Username:=edit1.Text;
IdSMTP1.Password:=edit2.Text;
IdSMTP1.Connect;
if IdSMTP1.Authenticate=true then begin
label4.Caption:='Состояние: Готово';
edit3.Enabled:=true;
edit4.Enabled:=true;
memo1.Enabled:=true;
label5.Enabled:=true;
label6.Enabled:=true;
label7.Enabled:=true;
button2.Enabled:=true;
end
else
label4.Caption:='Ошибка в логине или в пароле';
end;2. После первой авторизации второй раз авторизироваться нельзя. Почему? Помогите пожалуйста. Заранее спасибо. Последний раз редактировалось Admin, 24.05.2008 в 21:11. |
|
#15
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject); begin if IdSMTP1.Connected then begin IdSMTP1.Disconnect; IdSMTP1.Host:='smtp.'+combobox1.Text; IdSMTP1.Username:=edit1.Text; IdSMTP1.Password:=edit2.Text; IdSMTP1.Connect; if IdSMTP1.Authenticate=true then begin begin label4.Caption:='Состояние: Готово'; edit3.Enabled:=true; edit4.Enabled:=true; memo1.Enabled:=true; label5.Enabled:=true; label6.Enabled:=true; label7.Enabled:=true; button2.Enabled:=true; end else label4.caption:='Состояни: НеГотово'; end else label4.Caption:='Ошибка в логине или в пароле'; end; Вот так попробуй, хотя я писал прямо здесь, могу и ошибаться |