Текущий архив: 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.51 MB
Время: 0.011 c