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

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

Как отправить письмо по электронной почте? [D7, XP]


Страницы:   1 2

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]

но вообще-то код правильный? как считаете? или он в принципе неработоспособен?


Страницы:   1 2

Наверх

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