![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отправить письмо по электронной почте? [D7, XP]
AlexAA © (2008-06-26 06:26:00)Добрый день! Подскажите, пожалуйста, как отправить письмо по электронной почте, например, через Outlook незаметно для пользователя. Адрес получателя, тема письма заранее известны. Спасибо.
AlexAA (2008-06-26 14:28:00) [1]idSMTP1.Host:='имя сервера';
AlexAA (2008-06-26 14:24:00) [2]Короче, сделал так:
Form1.idSMTP1.AuthenticationType:= atLogin;
Form1.idSMTP1.Username:='логин';
Form1.idSMTP1.Password:='пароль';
Form1.idSMTP1.Host:='сервер';
Form1.IdSMTP1.Port:=25;
msg:=TIdMessage.Create(nil);
msg.Body.Add('test :)');
msg.Subject:='test mail';
msg.From.Address:='адрес отправителя';
msg.From.Name:='От кого';
msg.Recipients.EMailAddresses:='адрес получателя';
msg.IsEncoded:=true;
//attach:=TIdAttachment.Create(msg.MessageParts,'C:\D.doc');
try
Form1.idSMTP1.Connect();
if Form1.idSMTP1.Connected then
begin
Form1.idSMTP1.Send(msg);
showmessage('Отправка завершена!');
end
else showmessage('Нет соединения! :(');
finally
Form1.IdSMTP1.Disconnect;
end;
//attach.Free;
end;
И все ЗАПАХАЛО!!!!!!!!!!!!!!!!!!
Всем спасибо за ПОМОЩЬ!!!
Dennis I. Komarov (2008-06-26 14:02:00) [3]> [25] AlexAA (26.06.08 13:13)
А теперь прокомментирый свой [16]
AlexAA (2008-06-26 13:13:00) [4]PORT - Для отправки электронной почты по протоколу SMTP (Simple Mail Transfer Protocol - простой протокол передачи почты), используется 25 порт, по которому посылаются команды и текст письма. Т.е. это порт.
IdSMTP1.Port:=25;
HOST - Для соединения с SMTP сервером, который будет осуществлять отправку почты, нужно указать его URL.
IdSMTP1.Host := 'smtp.mail.ru';
Dennis I. Komarov (2008-06-26 12:46:00) [5]> [23] AlexAA (26.06.08 12:37)
Разберись для начала с разницей Port b Host
AlexAA (2008-06-26 12:37:00) [6]Ошибка #10060 Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было ...EIdSocketError.
Не понимаю, почему не пашет.... Что не так в коде? Может сталкивался кто?
Anatoly Podgoretsky (2008-06-26 10:25:00) [7]
> это порт :))
А что же еще.
Да тут не справку надо читать, а букварь по сетям. До справки еще идти и идти.
Anatoly Podgoretsky (2008-06-26 10:24:00) [8]
> Сообщение такое: "Search string 'd7indy.hlp' not found"
Если ты правильно использовал Ctrl+F то надо переинсталировать Дельфи и больше не глупить, если не понимаешь что, то не надо отказываться при инсталяции.
Dennis I. Komarov (2008-06-26 10:22:00) [9]Осталось перевести сообщение и найти в каком месте возникает ошибка
ЗЫ И все же
with TidMessage.Create(nil) do try
...
finally
Free;
end;
AlexAA (2008-06-26 10:09:00) [10]вообщем делаю так:
begin
Msg:=TidMessage.Create(nil);
Msg.From.Address:= 'post@post.ru';
Msg.Subject:= 'тема';
Msg.Body.Text:= 'текст';
Msg.Recipients.EMailAddresses:= 'post@post.ru';
idSMTP:=TidSMTP.Create(nil);
idSMTP.Host:= 'post.ru';
idSMTP.Port:= 25;
idSMTP.AuthenticationType:=atLogin;
//idSMTP.Username:= 'логин';
//idSMTP.Password:= 'пароль';
idAtt:=TIdAttachment.Create(Msg.MessageParts,'файл');//если нужно прикрепить файл
try
idSMTP.Connect(-1);
except
//обработу неконнекта я не сделал
end;
idSMTP.Send(Msg);
idSMTP.Disconnect;
idAtt.Free;
idSMTP.Free;
Msg.Free;
end;
вылетает сообщение: "Project Project1.exe raised exception class EIdSoccketError with message 'Socket Error # 10051 Network is unreachable.'. Process stopped. Use Step or Run to continue."
Что за проблема?
Palladin (2008-06-26 10:07:00) [11]это порт :))
Dennis I. Komarov (2008-06-26 10:03:00) [12]> А если мне надо написать '85.115.172.33', то как быть?
А что это?
AlexAA (2008-06-26 10:01:00) [13]еще такой момент:
idSMTP.Port: для целых чисел.
А если мне надо написать '85.115.172.33', то как быть?
AlexAA (2008-06-26 09:58:00) [14]> Ctrl+F -> d7indy.hlp
Сообщение такое: "Search string 'd7indy.hlp' not found"
Anatoly Podgoretsky (2008-06-26 09:34:00) [15]
> нет у меня справки. Либо ее надо как-то устанавливать. По
> Indy вылетает сообщение "Раздел не существует. Обратитесь
> к поставщику за обновленной версией файла справки"
Ctrl+F -> d7indy.hlp
Palladin (2008-06-26 09:22:00) [16]а Disconnect'то, однако, вызвать не забыл... :) чудно
Dennis I. Komarov (2008-06-26 09:22:00) [17]> что типа "not connecned".
Чукча?
Dennis I. Komarov (2008-06-26 09:21:00) [18]> [10] AlexAA (26.06.08 09:17)
Ну и чего тебе не нравиться? Строки Connect я не нашел.
AlexAA (2008-06-26 09:17:00) [19]выдает сообщение, что типа "not connecned".
AlexAA (2008-06-26 09:14:00) [20]но вообще-то код правильный? как считаете? или он в принципе неработоспособен?