![]() |
|
|
#1
|
|||
|
|||
|
Доброго времени суток, на форме имеется 3 edit'a и одна кнопка, при нажатии на нее содержимое 3х edit'ов отправляется на e-mail. Подскажите код, желательно с подробными комментариями. Спасибо!
|
|
#2
|
|||
|
|||
|
Код:
uses IDSMTP, IDMESSAGE; //подключаем компоненты к юниту нашу
procedure sendmail; //процедура
var: ms : TIDMESSAGE;
IDSMTP1: TIDSMTP;
begin
idsmtp1:=TIDSMTP.create(nil);
ms:=TIDMESSAGE.create(nil);
idSmtp1.host:='smtp.mail.ru'; //если мэйлер у нас mail.ru
idsmtp1.port:=25; //порт 2525 дополнительный
idsmtp1.Username:='твой логин';
idsmtp1.Password:='твой пасс';
ms.body.add('edit1: '+edit1.text); //текст edit1
ms.body.add('edit2: '+edit2.text);//текст edit2
ms.body.add('edit3: '+edit3.text);//текст edit3
ms.From.Text:='твой логин'; //адрес отправителя
ms.Recipients.EMailAddresses:='m-unit@mail.tj'; // адрес получателя
ms.Subject:='*~*'; //тема сообщении
idsmtp1.Connect(); //коннектимся
if idsmtp1.Connected=true then //усли коннектились то
idsmtp1.Send(ms); //отправляем письмо
idsmtp1.Disconnect; //диссконектимся
idsmtp1.free;
ms.free; //типа дестрой =))
showmessage(':)'); //результат :-)
end;
а теперь вызываем процедуру нашу)) там где твоя кнопка пиши Код:
sendmail; Последний раз редактировалось Программер_Х, 25.08.2010 в 22:12. |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
|||
|
|||
|
У меня почему-то ругается на эти строки, в чем может быть дело? вроде edit'ы на форме имеются
Код:
ms.body.add('edit1: '+edit1.text);
ms.body.add('edit2: '+edit2.text);
ms.body.add('edit3: '+edit3.text); |
|
#5
|
|||
|
|||
|
Цитата:
ой... да реально ошибка, там надо написать Form1.edit1.text ))) вот так надо: Код:
procedure sendmail; //добавь эту строку там где private { Private declarations }
//потом внизу сама процедура:
procedure TForm1.sendmail; //процедура наша (где Form1 это имя формы)
var
ms : TIDMESSAGE;
IDSMTP1: TIDSMTP;
begin
idsmtp1:=TIDSMTP.create(nil);
ms:=TIDMESSAGE.create(nil);
idSmtp1.host:='smtp.mail.ru'; //если мэйлер у нас mail.ru
idsmtp1.port:=25; //порт 2525 дополнительный
idsmtp1.Username:='твой логин';
idsmtp1.Password:='твой пасс';
ms.body.add('edit1: '+edit1.text); //текст edit1
ms.body.add('edit2: '+edit2.text);//текст edit2
ms.body.add('edit3: '+edit3.text);//текст edit3
ms.From.Text:='твой логин'; //адрес отправителя
ms.Recipients.EMailAddresses:='m-unit@mail.tj'; // адрес получателя
ms.Subject:='*~*'; //тема сообщении
idsmtp1.Connect(); //коннектимся
if idsmtp1.Connected=true then //если коннектились то
idsmtp1.Send(ms); //отправляем письмо
idsmtp1.Disconnect; //диссконектимся
idsmtp1.free;
ms.free; //типа дестрой =))
showmessage(':)'); //результат :-)
end;/// я вчера этого кода написал прямо на форуме ))а не скопировал по этому с ошибками...)) Последний раз редактировалось Программер_Х, 26.08.2010 в 14:07. |
|
#6
|
|||
|
|||
|
или в процедуре там где твоя кнопка пиши код этой процедуры так тоже можно )) но отдельная процедура отправки намного лучшее =))
![]() |
|
#8
|
|||
|
|||
|
Цитата:
странно... ты в username пишешь полный адрес электронной почты или только логин (без домена)? ![]() |
|
#9
|
|||
|
|||
|
твой скрин означает что без авторизации сервер майл.ру не разрешает отправить письмо )) так что попробуй добавить такую строку вверху
Код:
IdSMTP1.AuthType:=atlogin; idsmtp1.Authenticate; //и вот эту строку добавь ![]() |
|
#10
|
|||
|
|||
|
Адрес пишу полный... Вроде элементарная задача, но все равно не получается... Выложите кто-нибудь пожалуйста исходник!!! буду очень благодарен. Место для адресов почты и пароля можно оставить пустыми.
Последний раз редактировалось Ru0208, 27.08.2010 в 18:10. |
|
#11
|
|||
|
|||
|
Люди, поделитесь пожалуйста исходником!
|
|
#12
|
|||
|
|||
|
исходники то есть
просто надо искать здесь... этот сайт называется Дельфи Исходники (DelphiSources) =) вот тебе 3исходники которые есть на этом сайте.... http://www.delphisources.ru/pages/so...component.html http://www.delphisources.ru/pages/so...mple_mail.html http://www.delphisources.ru/pages/so...et/e-mail.html ![]() |