Форум   Статьи   Новости   Файлы   Bugtraq   Сниффер   Друзья   О Клубе
Вернуться   HPC / Кодинг / Другие Языки / Delphi
 
  Страница 1
  , 14:10   #1
Местный
 
Аватар для _Alien_
 
Локация: Лос Анджелес
Регистрация: 26.12.2010
Сообщений: 451

Репутация: 12 / 1
По умолчанию Как сделать?

Как сделать чтобы отправлял на тот E-mail который написан в edit1?

Вот код:
Цитата:
begin
idmessage1.Recipients.emailaddresses:='от кого';
idmessage1.From.Text:='кому отсылать';
idmessage1.body.text:=Memo1.Text;
idmessage1.subject:='тема';
idmessage1.ContentType:='text/plain';
/////
idSmtp1.AuthenticationType:=AtLogin;
idSmtp1.username:='мой логин';
idSmtp1.Password:='мой пасс';
idsmtp1.Host:='smtp.yandex.ru';
idsmtp1.Port:=25;
idsmtp1.Connect(60000);
idSmtp1.Send(IdMessage1);
idSmtp1.Disconnect;
end;
Он работает! но как сделать чтобы idmessage1.From.Text:='кому отсылать'; вот это менялось на то что написано в edit1?
__________________
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их.
Пользователь вне форума    
Наши Спонсоры
  , 14:11   #2
Banned
 
Регистрация: 15.03.2011
Сообщений: 65

Репутация: 0 / 0
По умолчанию

idmessage1.From.Text:=Edit1.text;
 
Пользователь вне форума    
  , 14:12   #3
Местный
 
Аватар для _Alien_
 
Локация: Лос Анджелес
Регистрация: 26.12.2010
Сообщений: 451

Репутация: 12 / 1
По умолчанию

Я пробывал что то не получается(((
__________________
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их.
Пользователь вне форума    
  , 14:13   #4
Banned
 
Регистрация: 15.03.2011
Сообщений: 65

Репутация: 0 / 0
По умолчанию

что опять фэйки строиш? Щас поставлю delphi. отпишусь, ну поидее должно работать.
 
Пользователь вне форума    
  , 14:14   #5
Форумчанин
 
Аватар для LeIk@Z
 
Регистрация: 10.12.2010
Сообщений: 52

Репутация: 3 / 0
По умолчанию

idmessage1.From.Text:= edit1.caption;

так наверно
 
Пользователь вне форума    
  , 14:16   #6
Banned
 
Регистрация: 15.03.2011
Сообщений: 65

Репутация: 0 / 0
По умолчанию

Цитата:
Сообщение от LeIk@Z Посмотреть сообщение
idmessage1.From.Text:= edit1.caption;

так наверно
Нее у Edit нет атрибута caption
 
Пользователь вне форума    
  , 14:25   #7
Местный
 
Аватар для _Alien_
 
Локация: Лос Анджелес
Регистрация: 26.12.2010
Сообщений: 451

Репутация: 12 / 1
По умолчанию

Не фейк я строю! а спам бот!))
__________________
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их.
Пользователь вне форума    
  , 14:27   #8
Постоянный
 
Аватар для cargo29
 
Регистрация: 26.10.2010
Сообщений: 611

Репутация: 5 / 0
По умолчанию

Попробуй так idmessage1.From:=Edit1.text; и проверь Edit1 точно ли такое у него имя
__________________
http://google.ru & http://www.radiozuk.ru
Пользователь вне форума    
  , 14:33   #9
Местный
 
Аватар для _Alien_
 
Локация: Лос Анджелес
Регистрация: 26.12.2010
Сообщений: 451

Репутация: 12 / 1
По умолчанию

А обязательно делать чтобы логин и пароль были того от кого отсылаешь?? или можно подставить данные своего емейла а отправить от VasyaPupkin@yandex.ru?

Короче мне надо чтобы какждое из данных можно было написать в edit1,edit2,edit3 и тд.
__________________
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их.
Пользователь вне форума    
  , 14:34   #10
Banned
 
Регистрация: 15.03.2011
Сообщений: 65

Репутация: 0 / 0
По умолчанию

спам бот?? с компонетом smtp хрень получится, юзай винсок
 
Пользователь вне форума    
  , 14:38   #11
Местный
 
Аватар для _Alien_
 
Локация: Лос Анджелес
Регистрация: 26.12.2010
Сообщений: 451

Репутация: 12 / 1
По умолчанию

Не ну просто!! вдруг пригодится!) а я таймер заюзаю чтоб через каждые 10 сек отправляло!!! если не сложно помогите)))!

Добавлено через 10 минут
А я понял в чем ошибка!!!)) а как её исправить?? просто там можно отправить письмо только тому чей логин и пасс написан!! а как исправить? я сначала попробывал отправить письмо на адрес которому соответствует логин и пасс(мой) и все ок!) а попробывал на другой выдает ошибку(((

Добавлено через 29 минут
Пожалуйста помогите)!
__________________
Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их.

Последний раз редактировалось _Alien_; 19.03.2011 в 15:08. Причина: Добавлено сообщение
Пользователь вне форума    
  , 15:45   #12
Форумчанин
 
Аватар для LeIk@Z
 
Регистрация: 10.12.2010
Сообщений: 52

Репутация: 3 / 0
По умолчанию

Вложение 2809

много лишнего но работает

переименовать в rar
 

Последний раз редактировалось LeIk@Z; 22.03.2011 в 12:26.
Пользователь вне форума    
  , 20:35   #13
Постоянный
 
Регистрация: 31.03.2010
Сообщений: 978

Репутация: 33 / 1
По умолчанию

Цитата:
Сообщение от Artyom.plus Посмотреть сообщение
спам бот?? с компонетом smtp хрень получится, юзай винсок
Поделись кодом отправки почты через сокеты!
__________________
Я узнал что у меня есть огромная семья! Монитор, системный блок, в сеть воткнул я проводок, windows небо голубое - это всё моё, родное! без инэта жить нельзя! наркоман наверно Я!
Пользователь вне форума    
  , 20:50   #14
Banned
 
Регистрация: 15.03.2011
Сообщений: 65

Репутация: 0 / 0
По умолчанию

Спойлер

unit smtp;

interface

uses
Windows, SysUtils, Classes, WinSock2;


const
CL = #13#10;
CL2 = CL + CL;

function SendMail(Server: String; Port: Integer; const User, Pass,
From,SentTo,Tema,Body,Files: String): Boolean;

implementation

uses Encoders;

function StrToAddr(Server: String; var InAddr: TInAddr): Integer;
var
HostEnt: PHostEnt;
begin
Result:= -1;
HostEnt:= GetHostByName(PChar(Server));
FillChar(InAddr, SizeOf(InAddr), 0);
if (HostEnt = nil) then Exit;
with InAddr, HostEnt^ do
begin
S_un_b.s_b1 := (h_addr^[0]);
S_un_b.s_b2 := (h_addr^[1]);
S_un_b.s_b3 := (h_addr^[2]);
S_un_b.s_b4 := (h_addr^[3]);
end;
Result:= 0;
end;

function SendText(Sock: TSocket; S: String): Integer;
var
Buff: array[0..1023] of Char;
iSize, i: Integer;
begin
Result:=0;
S:= S + CL;
while (Length(S)>0) do
begin
iSize:= Length(S);
if ( iSize > SizeOf(Buff) ) then iSize:= SizeOf(Buff);
FillChar(Buff, SizeOf(Buff), 0);
CopyMemory(@Buff, PChar(S), iSize);
Delete(S, 1, iSize);
i:= Send(Sock, Buff, iSize, 0);
if i = SOCKET_ERROR then Break;
Result:= Result + i;
end;
end;

function RecvData(Sock: TSocket; accept: string): Boolean;
var
Buff: array[1..255] of Char;
begin
Result:= (recv(Sock, buff, SizeOf(buff), 0) = SOCKET_ERROR) or (Copy(Buff, 1, 3) = accept);
end;

// Функция отправки файла
procedure SendFile(SendFile: String; const Sock: TSocket);
const
Base64MaxLength = 72;
var
base64String:String;
hFile: Integer;
Buf: array[0..2] Of Byte;
Base64:TBase64;
begin
// Отправка параметров кодирования attachment
SendText(Sock, 'Content-Type: application/octet-stream; name="'+
ExtractFileName(SendFile)+'"');
// Тип кодирования файла
SendText(Sock, 'Content-Transfer-Encoding: base64');
SendText(Sock, 'Content-Disposition: attachment; filename="'+
ExtractFileName(SendFile)+'"');
// Описание вложения
SendText(Sock, 'Content-Description: attachment');
SendText(Sock, '');
base64String:='';
// открывваем файл для чтения
hFile:= FileOpen(SendFile,fmOpenRead);
// Заполняем структуру Buf
FillChar(Buf,SizeOf(Buf),#0);
Yield;
// Начинаем кодирование
repeat
Base64.ByteCount:= FileRead(hFile,Buf,SizeOf(Buf));
Move(Buf,Base64.ByteArr,SizeOf(Buf));
base64String:= base64String + CodeBase64(Base64);
if Length(base64String) = Base64MaxLength then
begin
// Отправляем кодированую строку серверу
SendText(Sock,base64String);
// "Обнуляем" строку
base64String:= '';
end;
until Base64.ByteCount < 3;
// Отправляем последние байты
SendText(Sock,base64String);
// закрываем файл
FileClose(hFile);
SendText(Sock, '');
end;

// Функция для генерации случайного Boundary
function GenerateBoundary: String;
var
N, X, StrLen: integer;
const
StrTable: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
begin
SetLength(result, 14);
StrLen := Length(StrTable);
N := 0;
while N < 14 do begin
X:= Random(StrLen) + 1;
if (pos(StrTable[X], result) = 0) then begin
inc(N);
Result[N]:= StrTable[X];
end;
end;
end;

function GetLocalHost: string;
var
_buff : array [0..255] of char;
begin
if gethostname(_buff, 255) = 0 then
Result:= StrPas(_buff)
else
Result:= '';
end;

function SendMail(Server: String; Port: Integer; const User, Pass,
From,SentTo,Tema,Body,Files: String): Boolean;
var
Boundary: String;
wData: TWSAData;
SockSMTP: TSocket;
SockAddr: TSockAddrIn;
begin
//===========================================================
// Инициализация переменных
//===========================
Result:= False;
if (WSAStartup(MakeWord(2, 2), wData)<>0) then Exit;
try
//===========================================================
// Connect to SMTP server and send message\file
//============================

SockAddr.sin_family:= AF_INET;
if (StrToAddr(Server, SockAddr.sin_addr)=0) then begin
SockAddr.sin_port:= HToNS(Port);
FillChar(SockAddr.sin_zero, SizeOf(SockAddr.sin_zero), 0);
SockSMTP:= Socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if SockSMTP <> INVALID_SOCKET then begin
if (Connect(SockSMTP, @SockAddr, Sizeof(SockAddr))=0) then begin
if RecvData(SockSMTP,'220') then begin
SendText(SockSMTP,'EHLO ' + GetLocalHost); { HELO }
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'AUTH PLAIN ' + Base64Encode(User+#0+User+#0+Pass));
if RecvData(SockSMTP,'235') then begin
SendText(SockSMTP,'MAIL FROM:' + From);
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'RCPT TO:' + SentTo);
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'DATA');
if RecvData(SockSMTP,'354') then begin
SendText(SockSMTP,'From: ' + From);
SendText(SockSMTP,'To: ' + SentTo);
SendText(SockSMTP,'Subject: ' + Tema);
SendText(SockSMTP,'Mime-Version: 1.0');
SendText(SockSMTP,'Content-Type: multipart/mixed;');
SendText(SockSMTP,'boundary="----------' + Boundary + '"');
SendText(SockSMTP,'');
SendText(SockSMTP,'This is a multipart MIME-coded message');
SendText(SockSMTP,'');
SendText(SockSMTP,'------------' + Boundary);
SendText(SockSMTP,'Content-Type: text/plain; charset=Windows-1251');
SendText(SockSMTP,'Content-Transfer-Encoding: 8bit');
SendText(SockSMTP,'');
SendText(SockSMTP,Body);
if Files<>'' then begin
SendText(SockSMTP,'------------' + Boundary);
SendFile(Files,SockSMTP);
SendText(SockSMTP,'------------' + Boundary + '--');
SendText(SockSMTP,'');
end;

SendText(SockSMTP, CL + '.' + CL);
// Закрытие канала передачи данных
SendText(SockSMTP, 'QUIT');
Result:= True;
end;
end;
end;
end;
end;
end;
end; { end connect }
CloseSocket(SockSMTP);
end;
end; { end StrToAddr }
finally
WSACleanup;
end;
end;

end.

Требуется Winsock2
 
Пользователь вне форума    
  , 20:55   #15
Постоянный
 
Регистрация: 31.03.2010
Сообщений: 978

Репутация: 33 / 1
По умолчанию

Цитата:
Сообщение от Artyom.plus Посмотреть сообщение
Спойлер

unit smtp;

interface

uses
Windows, SysUtils, Classes, WinSock2;


const
CL = #13#10;
CL2 = CL + CL;

function SendMail(Server: String; Port: Integer; const User, Pass,
From,SentTo,Tema,Body,Files: String): Boolean;

implementation

uses Encoders;

function StrToAddr(Server: String; var InAddr: TInAddr): Integer;
var
HostEnt: PHostEnt;
begin
Result:= -1;
HostEnt:= GetHostByName(PChar(Server));
FillChar(InAddr, SizeOf(InAddr), 0);
if (HostEnt = nil) then Exit;
with InAddr, HostEnt^ do
begin
S_un_b.s_b1 := (h_addr^[0]);
S_un_b.s_b2 := (h_addr^[1]);
S_un_b.s_b3 := (h_addr^[2]);
S_un_b.s_b4 := (h_addr^[3]);
end;
Result:= 0;
end;

function SendText(Sock: TSocket; S: String): Integer;
var
Buff: array[0..1023] of Char;
iSize, i: Integer;
begin
Result:=0;
S:= S + CL;
while (Length(S)>0) do
begin
iSize:= Length(S);
if ( iSize > SizeOf(Buff) ) then iSize:= SizeOf(Buff);
FillChar(Buff, SizeOf(Buff), 0);
CopyMemory(@Buff, PChar(S), iSize);
Delete(S, 1, iSize);
i:= Send(Sock, Buff, iSize, 0);
if i = SOCKET_ERROR then Break;
Result:= Result + i;
end;
end;

function RecvData(Sock: TSocket; accept: string): Boolean;
var
Buff: array[1..255] of Char;
begin
Result:= (recv(Sock, buff, SizeOf(buff), 0) = SOCKET_ERROR) or (Copy(Buff, 1, 3) = accept);
end;

// Функция отправки файла
procedure SendFile(SendFile: String; const Sock: TSocket);
const
Base64MaxLength = 72;
var
base64String:String;
hFile: Integer;
Buf: array[0..2] Of Byte;
Base64:TBase64;
begin
// Отправка параметров кодирования attachment
SendText(Sock, 'Content-Type: application/octet-stream; name="'+
ExtractFileName(SendFile)+'"');
// Тип кодирования файла
SendText(Sock, 'Content-Transfer-Encoding: base64');
SendText(Sock, 'Content-Disposition: attachment; filename="'+
ExtractFileName(SendFile)+'"');
// Описание вложения
SendText(Sock, 'Content-Description: attachment');
SendText(Sock, '');
base64String:='';
// открывваем файл для чтения
hFile:= FileOpen(SendFile,fmOpenRead);
// Заполняем структуру Buf
FillChar(Buf,SizeOf(Buf),#0);
Yield;
// Начинаем кодирование
repeat
Base64.ByteCount:= FileRead(hFile,Buf,SizeOf(Buf));
Move(Buf,Base64.ByteArr,SizeOf(Buf));
base64String:= base64String + CodeBase64(Base64);
if Length(base64String) = Base64MaxLength then
begin
// Отправляем кодированую строку серверу
SendText(Sock,base64String);
// "Обнуляем" строку
base64String:= '';
end;
until Base64.ByteCount < 3;
// Отправляем последние байты
SendText(Sock,base64String);
// закрываем файл
FileClose(hFile);
SendText(Sock, '');
end;

// Функция для генерации случайного Boundary
function GenerateBoundary: String;
var
N, X, StrLen: integer;
const
StrTable: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
begin
SetLength(result, 14);
StrLen := Length(StrTable);
N := 0;
while N < 14 do begin
X:= Random(StrLen) + 1;
if (pos(StrTable[X], result) = 0) then begin
inc(N);
Result[N]:= StrTable[X];
end;
end;
end;

function GetLocalHost: string;
var
_buff : array [0..255] of char;
begin
if gethostname(_buff, 255) = 0 then
Result:= StrPas(_buff)
else
Result:= '';
end;

function SendMail(Server: String; Port: Integer; const User, Pass,
From,SentTo,Tema,Body,Files: String): Boolean;
var
Boundary: String;
wData: TWSAData;
SockSMTP: TSocket;
SockAddr: TSockAddrIn;
begin
//===========================================================
// Инициализация переменных
//===========================
Result:= False;
if (WSAStartup(MakeWord(2, 2), wData)<>0) then Exit;
try
//===========================================================
// Connect to SMTP server and send message\file
//============================

SockAddr.sin_family:= AF_INET;
if (StrToAddr(Server, SockAddr.sin_addr)=0) then begin
SockAddr.sin_port:= HToNS(Port);
FillChar(SockAddr.sin_zero, SizeOf(SockAddr.sin_zero), 0);
SockSMTP:= Socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if SockSMTP <> INVALID_SOCKET then begin
if (Connect(SockSMTP, @SockAddr, Sizeof(SockAddr))=0) then begin
if RecvData(SockSMTP,'220') then begin
SendText(SockSMTP,'EHLO ' + GetLocalHost); { HELO }
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'AUTH PLAIN ' + Base64Encode(User+#0+User+#0+Pass));
if RecvData(SockSMTP,'235') then begin
SendText(SockSMTP,'MAIL FROM:' + From);
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'RCPT TO:' + SentTo);
if RecvData(SockSMTP,'250') then begin
SendText(SockSMTP,'DATA');
if RecvData(SockSMTP,'354') then begin
SendText(SockSMTP,'From: ' + From);
SendText(SockSMTP,'To: ' + SentTo);
SendText(SockSMTP,'Subject: ' + Tema);
SendText(SockSMTP,'Mime-Version: 1.0');
SendText(SockSMTP,'Content-Type: multipart/mixed;');
SendText(SockSMTP,'boundary="----------' + Boundary + '"');
SendText(SockSMTP,'');
SendText(SockSMTP,'This is a multipart MIME-coded message');
SendText(SockSMTP,'');
SendText(SockSMTP,'------------' + Boundary);
SendText(SockSMTP,'Content-Type: text/plain; charset=Windows-1251');
SendText(SockSMTP,'Content-Transfer-Encoding: 8bit');
SendText(SockSMTP,'');
SendText(SockSMTP,Body);
if Files<>'' then begin
SendText(SockSMTP,'------------' + Boundary);
SendFile(Files,SockSMTP);
SendText(SockSMTP,'------------' + Boundary + '--');
SendText(SockSMTP,'');
end;

SendText(SockSMTP, CL + '.' + CL);
// Закрытие канала передачи данных
SendText(SockSMTP, 'QUIT');
Result:= True;
end;
end;
end;
end;
end;
end;
end; { end connect }
CloseSocket(SockSMTP);
end;
end; { end StrToAddr }
finally
WSACleanup;
end;
end;

end.

Требуется Winsock2
Ну и код, легче через IDSMTP отправлять...
имхо!
__________________
Я узнал что у меня есть огромная семья! Монитор, системный блок, в сеть воткнул я проводок, windows небо голубое - это всё моё, родное! без инэта жить нельзя! наркоман наверно Я!
Пользователь вне форума    

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] PHP File Inclusion - От ошибки до шелла M@ZAX@KEP Сайты, Форумы, CMS 24 28.06.2017 01:29
[Вопрос] Как установить linux? _Werewolf_ Linux 137 09.10.2011 13:12
Как сделать веб мани без номера телефона? Hooligan1488 Платежные системы 3 04.10.2011 19:58
[Вопрос] Как можно сделать?? cargo29 PHP 0 09.05.2011 10:11
[Проблема] как сделать ? pantoderm HTML/XML/CSS 2 21.09.2010 23:17



Часовой пояс GMT +2
Powered by vBulletin® 3.x.x Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Copyright © 2008 - 2013 «HPC» Реклама на сайте Правила Форума Пользовательское соглашение Работа на сайте
При копировании материалов ставьте ссылку на источник
Все материалы представлены только в ознакомительных целях, администрация за их использование ответственности не несет.