Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: CL | DM;

Вниз

Как отправить письмо по электронной почте?   Найти похожие ветки 

 
AlexAA   (2008-06-26 06:26) [0]

Добрый день! Подскажите, пожалуйста, как отправить письмо по электронной почте, например, через Outlook незаметно для пользователя. Адрес получателя, тема письма заранее известны. Спасибо.


 
Loginov Dmitry ©   (2008-06-26 07:35) [1]

> как отправить письмо по электронной почте, например, через
> Outlook незаметно для пользователя.


Отвлечь пользователя, сесть за его компьютер, отправить через Outlook, удалить все следы отправки.

Если хочется программно, то в наборе Indy есть все необходимые для этих целей компоненты.


 
AlexAA   (2008-06-26 07:50) [2]

Если можно, то поподробнее расскажите, пожалуйста


 
Anatoly Podgoretsky ©   (2008-06-26 08:40) [3]

Об Инди подробный рассказ займет много дней. Может ты сам почитаешь справку, она не большая - всего 21 000 страниц.


 
AlexAA   (2008-06-26 08:55) [4]

нет у меня справки. Либо ее надо как-то устанавливать. По Indy вылетает сообщение "Раздел не существует. Обратитесь к поставщику за обновленной версией файла справки"


 
AlexAA   (2008-06-26 08:57) [5]

Вот у меня такой код. Что-то не работает

procedure TForm1.Button1Click(Sender: TObject);
var
 idSMTP: TidSMTP;
 Msg: TidMessage;
 idAtt: TIdAttachment;
begin
   Msg:=TidMessage.Create(nil);
   Msg.From.Address:= "адрес отправителя";
   Msg.Subject:= "тема";
   Msg.Body.Text:= "текст";
   Msg.Recipients.EMailAddresses:= "адрес получателя";
   idSMTP:=TidSMTP.Create(nil);
   idSMTP.Host:= "smtp сервер";
   idSMTP.Port:= 25;
   idSMTP.AuthenticationType:=atLogin;
   idSMTP.Username:= "логин";
   idSMTP.Password:= "пароль";

 idAtt:=TIdAttachment.Create(Msg.MessageParts,"файл");
   idSMTP.Send(Msg);
   idSMTP.Disconnect;

   idAtt.Free;
   idSMTP.Free;
   Msg.Free;

end;


 
AlexAA   (2008-06-26 08:59) [6]

ну, естественно все адреса отпрвителя, получателя и т.д. заменены на реальные ...@.....


 
Palladin ©   (2008-06-26 09:04) [7]


> Что-то не работает

истина где"то рядом


 
Dennis I. Komarov ©   (2008-06-26 09:13) [8]

> Что-то не работает

Так и говорит?


> Msg.Recipients.EMailAddresses.

Посмотри тут

ЗЫ про try не плохо бы почитать...


 
AlexAA   (2008-06-26 09:14) [9]

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


 
AlexAA   (2008-06-26 09:17) [10]

выдает сообщение, что типа "not connecned".


 
Dennis I. Komarov ©   (2008-06-26 09:21) [11]

> [10] AlexAA   (26.06.08 09:17)

Ну и чего тебе не нравиться? Строки Connect я не нашел.


 
Dennis I. Komarov ©   (2008-06-26 09:22) [12]

> что типа "not connecned".

Чукча?


 
Palladin ©   (2008-06-26 09:22) [13]

а Disconnect"то, однако, вызвать не забыл... :) чудно


 
Anatoly Podgoretsky ©   (2008-06-26 09:34) [14]


> нет у меня справки. Либо ее надо как-то устанавливать. По
> Indy вылетает сообщение "Раздел не существует. Обратитесь
> к поставщику за обновленной версией файла справки"

Ctrl+F -> d7indy.hlp


 
AlexAA   (2008-06-26 09:58) [15]

> Ctrl+F -> d7indy.hlp

Сообщение такое: "Search string "d7indy.hlp" not found"


 
AlexAA   (2008-06-26 10:01) [16]

еще такой момент:
idSMTP.Port: для целых чисел.
А если мне надо написать "85.115.172.33", то как быть?


 
Dennis I. Komarov ©   (2008-06-26 10:03) [17]

> А если мне надо написать "85.115.172.33", то как быть?

А что это?


 
Palladin ©   (2008-06-26 10:07) [18]

это порт :))


 
AlexAA   (2008-06-26 10:09) [19]

вообщем делаю так:
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."

Что за проблема?


 
Dennis I. Komarov ©   (2008-06-26 10:22) [20]

Осталось перевести сообщение и найти в каком месте возникает ошибка

ЗЫ И все же

  with TidMessage.Create(nil) do try
  ...
  finally
    Free;
  end;


 
Anatoly Podgoretsky ©   (2008-06-26 10:24) [21]


> Сообщение такое: "Search string "d7indy.hlp" not found"

Если ты правильно использовал Ctrl+F то надо переинсталировать Дельфи и больше не глупить, если не понимаешь что, то не надо отказываться при инсталяции.


 
Anatoly Podgoretsky ©   (2008-06-26 10:25) [22]


> это порт :))

А что же еще.
Да тут не справку надо читать, а букварь по сетям. До справки еще идти и идти.


 
AlexAA   (2008-06-26 12:37) [23]

Ошибка #10060 Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было ...EIdSocketError.

Не понимаю, почему не пашет.... Что не так в коде? Может сталкивался кто?


 
Dennis I. Komarov ©   (2008-06-26 12:46) [24]

> [23] AlexAA   (26.06.08 12:37)

Разберись для начала с разницей Port b Host


 
AlexAA   (2008-06-26 13:13) [25]

PORT - Для отправки электронной почты по протоколу SMTP (Simple Mail Transfer Protocol - простой протокол передачи почты), используется 25 порт, по которому посылаются команды и текст письма. Т.е. это порт.
IdSMTP1.Port:=25;
HOST - Для соединения с SMTP сервером, который будет осуществлять отправку почты, нужно указать его URL.
IdSMTP1.Host := "smtp.mail.ru";


 
Dennis I. Komarov ©   (2008-06-26 14:02) [26]

> [25] AlexAA   (26.06.08 13:13)

А теперь прокомментирый свой [16]


 
AlexAA   (2008-06-26 14:24) [27]

Короче, сделал так:
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;

И все ЗАПАХАЛО!!!!!!!!!!!!!!!!!!
Всем спасибо за ПОМОЩЬ!!!


 
AlexAA   (2008-06-26 14:28) [28]

idSMTP1.Host:="имя сервера";



Страницы: 1 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
8-1183559340
alex30341
2007-07-04 18:29
2008.07.27
Перехват видео


15-1212964470
axis_of_evil
2008-06-09 02:34
2008.07.27
proxy server, mail server


2-1214750595
lewka-serdceed
2008-06-29 18:43
2008.07.27
Зависание формы во время выполнения задачи


15-1212834620
Kostafey
2008-06-07 14:30
2008.07.27
С днем рождения ! 7 июня


2-1214387731
Aggressor
2008-06-25 13:55
2008.07.27
WinXP rus, WinXP eng и кириллица