Можно ли сделать так, чтобы программа заходила на мою почту mail.ru и сообщала, есть ли новые письма?
Помогите с mail.ru
Страница: 1
Сообщений 1 страница 6 из 6
Поделиться203.03.2013 11:09:02
Конкретно для Mail.Ru есть специально разработанная программа этим порталом - Mail.Ru Агент.
Поделиться303.03.2013 11:10:02
Для этого даже есть спец. протоколы.
IMAP и POP3.
А PB умеет работать с почтой, см. раздел "Mail" справки.
Отредактировано Paranoia (03.03.2013 11:10:50)
Поделиться403.03.2013 12:49:04
За основу можешь взять этот пример. http://purebasic.info/phpBB2/viewtopic.php?p=2212#2212
Поделиться517.03.2013 09:40:15
Выдает:"Следующая PureLibrary отсутствует:StringExtension"
Код:
; Форум: http://pbasic.spb.ru/phpBB2/index.php
; Автор: Пётр
; Дата: 20 Октября 2007 года.
; OS Windows
; Версия 1.0
; Для успешной компиляции потребуются дополнительные библиотеки: PurePOP3, PBOSL, Droopy.
; Компилятор - PureBasic 4.0
Path.s=GetTemporaryDirectory()
KeyLog.s="павпр304jibjity9040шош540лОРЗЩЕЭКРЛБuiugtiithroi"
KeyPas.s="890654рлапго756щрпвjhjyrumkgjdfhkmnhgjrfhjfjhjgt"
Global Dostup=0 : Global Count : Global MeilString.s
Gosub Nastroiki
Procedure.s HifrEncode(String.s , Key.s) ; Шифровщик
Result.s=""
Size=Len(String.s)
For i=1 To Size
S.s=(Mid(String,i,1) )
Result=Result+RSet(Str(Asc(RC4Api(s , Key))),3,"0")
Next i
ProcedureReturn Result
EndProcedure
Procedure.s HifrDecoder(String.s , Key.s) ; Дешифровщик
Result.s=""
Size=Len(String.s)
For i=1 To Size Step 3
x.s=Chr(Val(Mid(String,i,3)))
Result=Result+RC4Api(x, Key)
Next i
ProcedureReturn Result
EndProcedure
Procedure Mail(G_Login,G_Pas)
User.s = GetGadgetText(G_Login)
Pwd.s = GetGadgetText(G_Pas)
If User<>"" And Pwd<>""
Len=Len(User)
Server.s="smtp."+Right(User, Len-FindString(User,"@",1))
Port.l = 110
If PurePOP3_OpenPOP3Connection(Server, Port, User, Pwd) = #PurePOP3_Ok
CountMessage = PurePOP3_CountMessages()
PurePOP3_ClosePOP3Connection()
Else
CountMessage= -2 ; Нет связи с инетом.
EndIf
Else
CountMessage= -3 ; Одно их полей не заполнено.
EndIf
ProcedureReturn CountMessage
EndProcedure
; Узнаём есть ли связь с инетом (автор Квиталли)
Procedure.l InternetConnected()
Protected dwConnectionTypes.l = #INTERNET_CONNECTION_MODEM + #INTERNET_CONNECTION_LAN + #INTERNET_CONNECTION_PROXY
ProcedureReturn InternetGetConnectedState_(@dwConnectionTypes,0) ; 0 - связи нет, >0 связь есть.
EndProcedure
Procedure Inet()
If Count>60 Or Dostup=1
;MessageBeep(0)
Count=0
If InternetConnected()
Count=0 : Dostup=0
;TimerKill(0,WindowID(0) ): Timer(0,10000,@Inet(),WindowID(0) )
Goto X_OpenMail
X_OpenMail1:
If MeilString<>""
MessageRequester("Почта",MeilString)
EndIf
Else
If Dostup=0
Dostup=1 :TimerKill(0,WindowID(0) ): Timer(0,1000,@Inet(),WindowID(0) )
EndIf
EndIf
Else
Count=Count+1
EndIf
EndProcedure
If OpenWindow(0,200,200,420,280,"Настройки",#PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_Invisible)
If CreateGadgetList(WindowID(0))
ScrollAreaGadget(0, 20, 10, 380,200, 350, 900, 30)
Frame3DGadget(1,20,20,300,100,"Меил 1")
CheckBoxGadget(2,100,30,70,15,"Включить")
StringGadget(3,100,50,200,20,"")
StringGadget(4,100,80,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(5,30,52,50,15,"Меил")
TextGadget(6,30,82,50,15,"Пароль")
Frame3DGadget(7,20,130,300,100,"Меил 2")
CheckBoxGadget(8,100,30+110,70,15,"Включить")
StringGadget(9,100,50+110,200,20,"")
StringGadget(10,100,80+110,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(11,30,52+110,50,15,"Меил")
TextGadget(12,30,82+110,50,15,"Пароль")
Frame3DGadget(14,20,240,300,100,"Меил 3")
CheckBoxGadget(15,100,30+220,70,15,"Включить")
StringGadget(16,100,50+220,200,20,"")
StringGadget(17,100,80+220,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(18,30,52+220,50,15,"Меил")
TextGadget(19,30,82+220,50,15,"Пароль")
Frame3DGadget(20,20,350,300,100,"Меил 4")
CheckBoxGadget(21,100,30+330,70,15,"Включить")
StringGadget(22,100,50+330,200,20,"")
StringGadget(23,100,80+330,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(24,30,52+330,50,15,"Меил")
TextGadget(25,30,82+330,50,15,"Пароль")
Frame3DGadget(26,20,460,300,100,"Меил 5")
CheckBoxGadget(27,100,30+440,70,15,"Включить")
StringGadget(28,100,50+440,200,20,"")
StringGadget(29,100,80+440,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(30,30,52+440,50,15,"Меил")
TextGadget(31,30,82+440,50,15,"Пароль")
Frame3DGadget(32,20,570,300,100,"Меил 6")
CheckBoxGadget(33,100,30+550,70,15,"Включить")
StringGadget(34,100,50+550,200,20,"")
StringGadget(35,100,80+550,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(36,30,52+550,50,15,"Меил")
TextGadget(37,30,82+550,50,15,"Пароль")
Frame3DGadget(38,20,680,300,100,"Меил 7")
CheckBoxGadget(39,100,30+660,70,15,"Включить")
StringGadget(40,100,50+660,200,20,"")
StringGadget(41,100,80+660,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(42,30,52+660,50,15,"Меил")
TextGadget(43,30,82+660,50,15,"Пароль")
Frame3DGadget(44,20,790,300,100,"Меил 8")
CheckBoxGadget(45,100,30+770,70,15,"Включить")
StringGadget(46,100,50+770,200,20,"")
StringGadget(47,100,80+770,200,20,"",#PB_String_Password | #PB_String_Numeric)
TextGadget(48,30,52+770,50,15,"Меил")
TextGadget(49,30,82+770,50,15,"Пароль")
Gosub Str : Gosub GadgetAktiv
Mail(3,4)
If AddSysTrayIcon(1, WindowID(0), ExtractIcon_(0,GetSystemDirectory()+"\sendmail.dll",0))
If CreatePopupMenu(0)
MenuItem(1, "Узнать о новых письмах")
MenuItem(2, "Настройки")
MenuItem(3, "О программе")
MenuBar()
MenuItem(4, "Выход")
EndIf
EndIf
Timer(0,60,@Inet(),WindowID(0) )
Repeat
Event=WaitWindowEvent()
Gadget=EventGadget()
Type=EventType()
Menu=EventMenu()
Window=EventWindow()
; Обработка правой кнопки мышки
If Event = #PB_Event_SysTray And Type=#PB_EventType_RightClick
DisplayPopupMenu(0, WindowID(0)) ; показ вспывающего меню
EndIf
If Event = #PB_Event_SysTray And Type=#PB_EventType_LeftDoubleClick
Goto M1
EndIf
If Event = #PB_Event_Menu
Select Menu
Case 1
M1:
If InternetConnected()>0
Gosub OpenMail
If MeilString<>""
MessageRequester("Есть новые письма",MeilString)
Else
MessageRequester("Нет писем","Новых писем нет",#MB_OK )
EndIf
Else
MessageRequester("Ошибка","Нет связи с инетом",#MB_OK | #MB_ICONERROR)
EndIf
Case 2
HideWindow(0,0)
Case 3
MessageRequester("О программе", "Проверялка мейлов"+Chr(13)+"Автор - Пётр")
Case 4
Exit=1
EndSelect
EndIf
If Window=0
If Event=#PB_Event_CloseWindow
HideWindow(0,1)
Gosub SaveN
EndIf
If Gadget=2 Or Gadget=8 Or Gadget=15 Or Gadget=21 Or Gadget=27 Or Gadget=33 Or Gadget=39 Or Gadget=45
Gosub GadgetAktiv
EndIf
EndIf
Until Exit=1
TimerKill(0,WindowID(0) )
EndIf
EndIf
End
OpenMail:
MeilString.s=""
If InternetConnected() >0
If GetGadgetState(2)=1 ; Меил 1
MailTemp=Mail(3,4)
If MailTemp >0 And ks1< MailTemp
MeilString=MeilString+GetGadgetText(3)+" "+Str(MailTemp-ks1)+Chr(13)
ks1=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(3)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(8)=1 ; Меил 2
MailTemp=Mail(9,10)
If MailTemp >0 And ks2< MailTemp
MeilString=MeilString+GetGadgetText(9)+" "+Str(MailTemp-ks2)+Chr(13)
ks2=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(9)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(15)=1 ; Меил 3
MailTemp=Mail(16,17)
If MailTemp >0 And ks3< MailTemp
MeilString=MeilString+GetGadgetText(16)+" "+Str(MailTemp-ks3)+Chr(13)
ks3=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(16)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(21)=1 ; Меил 4
MailTemp=Mail(22,23)
If MailTemp >0 And ks4< MailTemp
MeilString=MeilString+GetGadgetText(22)+" "+Str(MailTemp-ks4)+Chr(13)
ks4=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(22)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(27)=1 ; Меил 5
MailTemp=Mail(28,29)
If MailTemp >0 And ks5< MailTemp
MeilString=MeilString+GetGadgetText(28)+" "+Str(MailTemp-ks5)+Chr(13)
ks5=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(28)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(33)=1 ; Меил 6
MailTemp=Mail(34,35)
If MailTemp >0 And ks6< MailTemp
MeilString=MeilString+GetGadgetText(34)+" "+Str(MailTemp-ks6)+Chr(13)
ks6=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(34)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(39)=1 ; Меил 7
MailTemp=Mail(40,41)
If MailTemp >0 And ks7< MailTemp
MeilString=MeilString+GetGadgetText(40)+" "+Str(MailTemp-ks7)+Chr(13)
ks7=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(40)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
If GetGadgetState(45)=1 ; Меил 8
MailTemp=Mail(46,47)
If MailTemp >0 And ks8< MailTemp
MeilString=MeilString+GetGadgetText(45)+" "+Str(MailTemp-ks8)+Chr(13)
ks8=MailTemp
EndIf
If MailTemp = -2
MeilString=MeilString+GetGadgetText(45)+" нет связи с мейлом!!"+Chr(13)
EndIf
EndIf
Gosub SaveN
Else
SysTrayIconToolTip(1,"Нет связи с инетом")
EndIf
Return
X_OpenMail:
Gosub OpenMail
Goto X_OpenMail1
GadgetAktiv:
If GetGadgetState(2)=1 ; Меил 1
DisableGadget(3,0)
DisableGadget(4,0)
DisableGadget(5,0)
DisableGadget(6,0)
Else
DisableGadget(3,1)
DisableGadget(4,1)
DisableGadget(5,1)
DisableGadget(6,1)
EndIf
If GetGadgetState(8)=1 ; Меил 2
DisableGadget(9,0)
DisableGadget(10,0)
DisableGadget(11,0)
DisableGadget(12,0)
Else
DisableGadget(9,1)
DisableGadget(10,1)
DisableGadget(11,1)
DisableGadget(12,1)
EndIf
If GetGadgetState(15)=1 ; Меил 3
DisableGadget(16,0)
DisableGadget(17,0)
DisableGadget(18,0)
DisableGadget(19,0)
Else
DisableGadget(16,1)
DisableGadget(17,1)
DisableGadget(18,1)
DisableGadget(19,1)
EndIf
If GetGadgetState(21)=1 ; Меил 4
DisableGadget(22,0)
DisableGadget(23,0)
DisableGadget(24,0)
DisableGadget(25,0)
Else
DisableGadget(22,1)
DisableGadget(23,1)
DisableGadget(24,1)
DisableGadget(25,1)
EndIf
If GetGadgetState(27)=1 ; Меил 5
DisableGadget(28,0)
DisableGadget(29,0)
DisableGadget(30,0)
DisableGadget(31,0)
Else
DisableGadget(28,1)
DisableGadget(29,1)
DisableGadget(30,1)
DisableGadget(31,1)
EndIf
If GetGadgetState(33)=1 ; Меил 6
DisableGadget(34,0)
DisableGadget(35,0)
DisableGadget(36,0)
DisableGadget(37,0)
Else
DisableGadget(34,1)
DisableGadget(35,1)
DisableGadget(36,1)
DisableGadget(37,1)
EndIf
If GetGadgetState(39)=1 ; Меил 7
DisableGadget(40,0)
DisableGadget(41,0)
DisableGadget(42,0)
DisableGadget(43,0)
Else
DisableGadget(40,1)
DisableGadget(41,1)
DisableGadget(42,1)
DisableGadget(43,1)
EndIf
If GetGadgetState(45)=1 ; Меил 8
DisableGadget(46,0)
DisableGadget(47,0)
DisableGadget(48,0)
DisableGadget(49,0)
Else
DisableGadget(46,1)
DisableGadget(47,1)
DisableGadget(48,1)
DisableGadget(49,1)
EndIf
Return
Str:
SetGadgetText(3,HifrDecoder(m1.s,KeyLog) )
SetGadgetText(4,HifrDecoder(p1.s,KeyPas) )
SetGadgetText(9,HifrDecoder(m2.s,KeyLog) )
SetGadgetText(10,HifrDecoder(p2.s,KeyPas) )
SetGadgetText(16,HifrDecoder(m3.s,KeyLog) )
SetGadgetText(17,HifrDecoder(p3.s,KeyPas) )
SetGadgetText(22,HifrDecoder(m4.s,KeyLog) )
SetGadgetText(23,HifrDecoder(p4.s,KeyPas) )
SetGadgetText(28,HifrDecoder(m5.s,KeyLog) )
SetGadgetText(29,HifrDecoder(p5.s,KeyPas) )
SetGadgetText(34,HifrDecoder(m6.s,KeyLog) )
SetGadgetText(35,HifrDecoder(p6.s,KeyPas) )
SetGadgetText(40,HifrDecoder(m7.s,KeyLog) )
SetGadgetText(41,HifrDecoder(p7.s,KeyPas) )
SetGadgetText(46,HifrDecoder(m8.s,KeyLog) )
SetGadgetText(47,HifrDecoder(p8.s,KeyPas) )
SetGadgetState(2,s1)
SetGadgetState(8,s2)
SetGadgetState(15,s3)
SetGadgetState(21,s4)
SetGadgetState(27,s5)
SetGadgetState(33,s6)
SetGadgetState(39,s7)
SetGadgetState(45,s8)
Return
Nastroiki:
If OpenPreferences(Path+"Qpm.mpl")
s1=ReadPreferenceLong("s1", 0)
m1.s=ReadPreferenceString("m1", "")
p1.s=ReadPreferenceString("p1", "")
ks1= ReadPreferenceLong("Меил 1", 0)
s2=ReadPreferenceLong("s2", 0)
m2.s=ReadPreferenceString("m2", "")
p2.s=ReadPreferenceString("p2", "")
ks2= ReadPreferenceLong("Меил 2", 0)
s3=ReadPreferenceLong("s3", 0)
m3.s=ReadPreferenceString("m3", "")
p3.s=ReadPreferenceString("p3", "")
ks3= ReadPreferenceLong("Меил 3", 0)
s4=ReadPreferenceLong("s4", 0)
m4.s=ReadPreferenceString("m4", "")
p4.s=ReadPreferenceString("p4", "")
ks4= ReadPreferenceLong("Меил 4", 0)
s5=ReadPreferenceLong("s5", 0)
m5.s=ReadPreferenceString("m5", "")
p5.s=ReadPreferenceString("p5", "")
ks5= ReadPreferenceLong("Меил 5", 0)
s6=ReadPreferenceLong("s6", 0)
m6.s=ReadPreferenceString("m6", "")
p6.s=ReadPreferenceString("p6", "")
ks6= ReadPreferenceLong("Меил 6", 0)
s7=ReadPreferenceLong("s7", 0)
m7.s=ReadPreferenceString("m7", "")
p7.s=ReadPreferenceString("p7", "")
ks7= ReadPreferenceLong("Меил 7", 0)
s8=ReadPreferenceLong("s8", 0)
m8.s=ReadPreferenceString("m8", "")
p8.s=ReadPreferenceString("p8", "")
ks8= ReadPreferenceLong("Меил 8", 0)
err=0
ClosePreferences()
Else
err=1
EndIf
Return
SaveN:
If CreatePreferences(Path+"Qpm.mpl")
WritePreferenceLong("s1", GetGadgetState(2))
WritePreferenceString("m1", HifrEncode(GetGadgetText(3),KeyLog) )
WritePreferenceString("p1", HifrEncode(GetGadgetText(4),KeyPas) )
WritePreferenceLong("Меил 1",ks1 )
WritePreferenceLong("s2", GetGadgetState(8))
WritePreferenceString("m2", HifrEncode(GetGadgetText(9),KeyLog) )
WritePreferenceString("p2", HifrEncode(GetGadgetText(10),KeyPas) )
WritePreferenceLong("Меил 2",ks2 )
WritePreferenceLong("s3", GetGadgetState(15))
WritePreferenceString("m3", HifrEncode(GetGadgetText(16),KeyLog) )
WritePreferenceString("p3", HifrEncode(GetGadgetText(17),KeyPas) )
WritePreferenceLong("Меил 3",ks3 )
WritePreferenceLong("s4", GetGadgetState(21))
WritePreferenceString("m4", HifrEncode(GetGadgetText(22),KeyLog) )
WritePreferenceString("p4", HifrEncode(GetGadgetText(23),KeyPas) )
WritePreferenceLong("Меил 4",ks4 )
WritePreferenceLong("s5", GetGadgetState(27))
WritePreferenceString("m5", HifrEncode(GetGadgetText(28),KeyLog) )
WritePreferenceString("p5", HifrEncode(GetGadgetText(29),KeyPas) )
WritePreferenceLong("Меил 5",ks5 )
WritePreferenceLong("s6", GetGadgetState(33))
WritePreferenceString("m6", HifrEncode(GetGadgetText(34),KeyLog) )
WritePreferenceString("p6", HifrEncode(GetGadgetText(35),KeyPas) )
WritePreferenceLong("Меил 6",ks6 )
WritePreferenceLong("s7", GetGadgetState(39))
WritePreferenceString("m7", HifrEncode(GetGadgetText(40),KeyLog) )
WritePreferenceString("p7", HifrEncode(GetGadgetText(41),KeyPas) )
WritePreferenceLong("Меил 7",ks7 )
WritePreferenceLong("s8", GetGadgetState(45))
WritePreferenceString("m8", HifrEncode(GetGadgetText(46),KeyLog) )
WritePreferenceString("p8", HifrEncode(GetGadgetText(47),KeyPas) )
WritePreferenceLong("Меил 8",ks8 )
ClosePreferences()
EndIf
ReturnПоделиться617.03.2013 12:49:16
Кирилл написал(а):
отсутствует:StringExtension
Судя по всему, были установлены библиотеки не той версии.
Страница: 1