|
#1
|
|||
|
|||
idSMTP
Доброго времени суток, на форме имеется 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 |