EnableExplicit Global PBEx_Mail #PBEx_Mail_Protocol_IMAP = 0 #PBEx_Mail_Protocol_POP3 = 1 #PBEx_Mail_Priority_Normal = 0 #PBEx_Mail_Priority_Low = 1 #PBEx_Mail_Priority_High = 2 #PBEx_Mail_Event_NewMail = 0 #PBEx_Mail_Attribute_Unseen = 0 #PBEx_Mail_Attribute_Seen = 32 #PBEx_Mail_SeenType_AllMails = 0 #PBEx_Mail_SeenType_OnlySeenMails = 1 #PBEx_Mail_SeenType_OnlyUnseenMails = 2 #PBEx_Mail_FetchType_AllData = 0 #PBEx_Mail_FetchType_OnlyHeaderData = 1 CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 PBEx_Mail = OpenLibrary(#PB_Any, "PB.Ex_Mail_x86.dll") CompilerElseIf #PB_Compiler_Processor = #PB_Processor_x64 PBEx_Mail = OpenLibrary(#PB_Any, "PB.Ex_Mail_x64.dll") CompilerEndIf If PBEx_Mail Prototype OpenMailEx(ID, Protocol, MailServer.p-Unicode, Port, UserName.p-Unicode, Password.p-Unicode, SSL, ErrorOutput) Global OpenMailEx.OpenMailEx = GetFunction(PBEx_Mail, "OpenMailEx") Prototype CloseMailEx(ID, ErrorOutput) Global CloseMailEx.CloseMailEx = GetFunction(PBEx_Mail, "CloseMailEx") Prototype ExamineMailDirectoryEx(ID, ErrorOutput) Global ExamineMailDirectoryEx.ExamineMailDirectoryEx = GetFunction(PBEx_Mail, "ExamineMailDirectoryEx") Prototype MailDirectoryEntryNameEx(ID, Output, ErrorOutput) Global MailDirectoryEntryNameEx.MailDirectoryEntryNameEx = GetFunction(PBEx_Mail, "MailDirectoryEntryNameEx") Prototype ExamineMailEx(ID, SeenType, FetchType, SortByNew, ErrorOutput) Global ExamineMailEx.ExamineMailEx = GetFunction(PBEx_Mail, "ExamineMailEx") Prototype MailEntrySubjectEx(ID, Output, ErrorOutput) Global MailEntrySubjectEx.MailEntrySubjectEx = GetFunction(PBEx_Mail, "MailEntrySubjectEx") Prototype MailEntryBodyEx(ID, Output, ErrorOutput) Global MailEntryBodyEx.MailEntryBodyEx = GetFunction(PBEx_Mail, "MailEntryBodyEx") Prototype MailEntryFromEx(ID, Output, ErrorOutput) Global MailEntryFromEx.MailEntryFromEx = GetFunction(PBEx_Mail, "MailEntryFromEx") Prototype MailEntryToEx(ID, Output, ErrorOutput) Global MailEntryToEx.MailEntryToEx = GetFunction(PBEx_Mail, "MailEntryToEx") Prototype MailEntryCCEx(ID, Output, ErrorOutput) Global MailEntryCCEx.MailEntryCCEx = GetFunction(PBEx_Mail, "MailEntryCCEx") Prototype MailEntryBCCEx(ID, Output, ErrorOutput) Global MailEntryBCCEx.MailEntryBCCEx = GetFunction(PBEx_Mail, "MailEntryBCCEx") Prototype MailEntryDateEx(ID, ErrorOutput) Global MailEntryDateEx.MailEntryDateEx = GetFunction(PBEx_Mail, "MailEntryDateEx") Prototype MailEntryPriorityEx(ID, ErrorOutput) Global MailEntryPriorityEx.MailEntryPriorityEx = GetFunction(PBEx_Mail, "MailEntryPriorityEx") Prototype FinishMailDirectoryEx(ID, ErrorOutput) Global FinishMailDirectoryEx.FinishMailDirectoryEx = GetFunction(PBEx_Mail, "FinishMailDirectoryEx") Prototype FinishMailEx(ID, ErrorOutput) Global FinishMailEx.FinishMailEx = GetFunction(PBEx_Mail, "FinishMailEx") Prototype IsMailEx(ID, ErrorOutput) Global IsMailEx.IsMailEx = GetFunction(PBEx_Mail, "IsMailEx") Prototype NextMailDirectoryEntryEx(ID, ErrorOutput) Global NextMailDirectoryEntryEx.NextMailDirectoryEntryEx = GetFunction(PBEx_Mail, "NextMailDirectoryEntryEx") Prototype NextMailEntryEx(ID, ErrorOutput) Global NextMailEntryEx.NextMailEntryEx = GetFunction(PBEx_Mail, "NextMailEntryEx") Prototype SetMailDirectoryEx(ID, DirectoryPath.p-Unicode, ErrorOutput) Global SetMailDirectoryEx.SetMailDirectoryEx = GetFunction(PBEx_Mail, "SetMailDirectoryEx") Prototype CreateMailDirectoryEx(ID, DirectoryName.p-Unicode, ErrorOutput) Global CreateMailDirectoryEx.CreateMailDirectoryEx = GetFunction(PBEx_Mail, "CreateMailDirectoryEx") Prototype RenameMailDirectoryEx(ID, OldDirectoryName.p-Unicode, NewDirectoryName.p-Unicode, ErrorOutput) Global RenameMailDirectoryEx.RenameMailDirectoryEx = GetFunction(PBEx_Mail, "RenameMailDirectoryEx") Prototype DeleteMailDirectoryEx(ID, DirectoryPath.p-Unicode, ErrorOutput) Global DeleteMailDirectoryEx.DeleteMailDirectoryEx = GetFunction(PBEx_Mail, "DeleteMailDirectoryEx") Prototype CreateMailEx(ID, Directory.p-Unicode, Subject.p-Unicode, Body.p-Unicode, Priority, From.p-Unicode, ToAddress.p-Unicode, CC.p-Unicode, BCC.p-Unicode, Attachments.p-Unicode, ErrorOutput) Global CreateMailEx.CreateMailEx = GetFunction(PBEx_Mail, "CreateMailEx") Prototype BindMailEventEx(ID, Event, PBProcedureHandle, PID, ErrorOutput) Global BindMailEventEx.BindMailEventEx = GetFunction(PBEx_Mail, "BindMailEventEx") Prototype GetMailSubjectEx(ID, MailID, DirectoryPath.p-Unicode, Output, ErrorOutput) Global GetMailSubjectEx.GetMailSubjectEx = GetFunction(PBEx_Mail, "GetMailSubjectEx") Prototype GetMailBodyEx(ID, MailID, DirectoryPath.p-Unicode, Output, ErrorOutput) Global GetMailBodyEx.GetMailBodyEx = GetFunction(PBEx_Mail, "GetMailBodyEx") Prototype GetMailFromEx(ID, MailID, DirectoryPath.p-Unicode, Output, ErrorOutput) Global GetMailFromEx.GetMailFromEx = GetFunction(PBEx_Mail, "GetMailFromEx") Prototype GetMailToEx(ID, MailID, DirectoryPath.p-Unicode, Output, ErrorOutput) Global GetMailToEx.GetMailToEx = GetFunction(PBEx_Mail, "GetMailToEx") Prototype GetMailCCEx(ID, MailID, DirectoryPath.p-Unicode, Output, ErrorOutput) Global GetMailCCEx.GetMailCCEx = GetFunction(PBEx_Mail, "GetMailCCEx") Prototype GetMailBCCEx(ID, MailID, DirectoryPath.p-Unicode, Output, ErrorOutput) Global GetMailBCCEx.GetMailBCCEx = GetFunction(PBEx_Mail, "GetMailBCCEx") Prototype GetMailDateEx(ID, MailID, DirectoryPath.p-Unicode, ErrorOutput) Global GetMailDateEx.GetMailDateEx = GetFunction(PBEx_Mail, "GetMailDateEx") Prototype GetMailPriorityEx(ID, MailID, DirectoryPath.p-Unicode, ErrorOutput) Global GetMailPriorityEx.GetMailPriorityEx = GetFunction(PBEx_Mail, "GetMailPriorityEx") Prototype MailEntryBodySizeEx(ID, ErrorOutput) Global MailEntryBodySizeEx.MailEntryBodySizeEx = GetFunction(PBEx_Mail, "MailEntryBodySizeEx") Prototype MailIDEx(ID, ErrorOutput) Global MailIDEx.MailIDEx = GetFunction(PBEx_Mail, "MailIDEx") Prototype SetMailSubjectEx(ID, MailID, Directory.p-Unicode, Text.p-Unicode, ErrorOutput) Global SetMailSubjectEx.SetMailSubjectEx = GetFunction(PBEx_Mail, "SetMailSubjectEx") Prototype SetMailBodyEx(ID, MailID, Directory.p-Unicode, Text.p-Unicode, ErrorOutput) Global SetMailBodyEx.SetMailBodyEx = GetFunction(PBEx_Mail, "SetMailBodyEx") Prototype SetMailFromEx(ID, MailID, Directory.p-Unicode, Text.p-Unicode, ErrorOutput) Global SetMailFromEx.SetMailFromEx = GetFunction(PBEx_Mail, "SetMailFromEx") Prototype SetMailToEx(ID, MailID, Directory.p-Unicode, Text.p-Unicode, ErrorOutput) Global SetMailToEx.SetMailToEx = GetFunction(PBEx_Mail, "SetMailToEx") Prototype SetMailCCEx(ID, MailID, Directory.p-Unicode, Text.p-Unicode, ErrorOutput) Global SetMailCCEx.SetMailCCEx = GetFunction(PBEx_Mail, "SetMailCCEx") Prototype SetMailBCCEx(ID, MailID, Directory.p-Unicode, Text.p-Unicode, ErrorOutput) Global SetMailBCCEx.SetMailBCCEx = GetFunction(PBEx_Mail, "SetMailBCCEx") Prototype SetMailPriorityEx(ID, MailID, Directory.p-Unicode, Priority, ErrorOutput) Global SetMailPriorityEx.SetMailPriorityEx = GetFunction(PBEx_Mail, "SetMailPriorityEx") Prototype DeleteMailEx(ID, MailID, Directory.p-Unicode, ErrorOutput) Global DeleteMailEx.DeleteMailEx = GetFunction(PBEx_Mail, "DeleteMailEx") Prototype MoveMailEx(ID, MailID, Directory.p-Unicode, TargetDirectory.p-Unicode, ErrorOutput) Global MoveMailEx.MoveMailEx = GetFunction(PBEx_Mail, "MoveMailEx") Prototype CountMailEx(ID, Directory.p-Unicode, ErrorOutput) Global CountMailEx.CountMailEx = GetFunction(PBEx_Mail, "CountMailEx") Prototype CountMailDirectoryEx(ID, ErrorOutput) Global CountMailDirectoryEx.CountMailDirectoryEx = GetFunction(PBEx_Mail, "CountMailDirectoryEx") Prototype SendMailEx(ID, MailServer.p-Unicode, Port, UserName.p-Unicode, Password.p-Unicode, SSL, Subject.p-Unicode, Body.p-Unicode, Priority, From.p-Unicode, ToAddress.p-Unicode, CC.p-Unicode, BCC.p-Unicode, Attachments.p-Unicode, ErrorOutput) Global SendMailEx.SendMailEx = GetFunction(PBEx_Mail, "SendMailEx") Prototype SaveMailEx(ID, MailID, Directory.p-Unicode, Path.p-Unicode, ErrorOutput) Global SaveMailEx.SaveMailEx = GetFunction(PBEx_Mail, "SaveMailEx") Prototype GetMailHeaderEx(ID, MailID, Directory.p-Unicode, Output, ErrorOutput) Global GetMailHeaderEx.GetMailHeaderEx = GetFunction(PBEx_Mail, "GetMailHeaderEx") Prototype MailEntryHeaderEx(ID, Output, ErrorOutput) Global MailEntryHeaderEx.MailEntryHeaderEx = GetFunction(PBEx_Mail, "MailEntryHeaderEx") Prototype LoadMailEx(ID, Path.p-Unicode, Directory.p-Unicode, ErrorOutput) Global LoadMailEx.LoadMailEx = GetFunction(PBEx_Mail, "LoadMailEx") Prototype SendMailFileEx(ID, MailServer.p-Unicode, Port, UserName.p-Unicode, Password.p-Unicode, SSL, Path.p-Unicode, ErrorOutput) Global SendMailFileEx.SendMailFileEx = GetFunction(PBEx_Mail, "SendMailFileEx") Prototype CountMailAttachmentsEx(ID, ErrorOutput) Global CountMailAttachmentsEx.CountMailAttachmentsEx = GetFunction(PBEx_Mail, "CountMailAttachmentsEx") Prototype ExamineMailAttachmentsEx(ID, ErrorOutput) Global ExamineMailAttachmentsEx.ExamineMailAttachmentsEx = GetFunction(PBEx_Mail, "ExamineMailAttachmentsEx") Prototype NextMailEntryAttachmentsEx(ID, ErrorOutput) Global NextMailEntryAttachmentsEx.NextMailEntryAttachmentsEx = GetFunction(PBEx_Mail, "NextMailEntryAttachmentsEx") Prototype MailEntryAttachmentsFileNameEx(ID, Output, ErrorOutput) Global MailEntryAttachmentsFileNameEx.MailEntryAttachmentsFileNameEx = GetFunction(PBEx_Mail, "MailEntryAttachmentsFileNameEx") Prototype SaveMailEntryAttachmentsEx(ID, Path.p-Unicode, ErrorOutput) Global SaveMailEntryAttachmentsEx.SaveMailEntryAttachmentsEx = GetFunction(PBEx_Mail, "SaveMailEntryAttachmentsEx") Prototype FinishMailAttachmentsEx(ID, ErrorOutput) Global FinishMailAttachmentsEx.FinishMailAttachmentsEx = GetFunction(PBEx_Mail, "FinishMailAttachmentsEx") Prototype GetMailAttachmentsEx(ID, MailID, Directory.p-Unicode, ErrorOutput) Global GetMailAttachmentsEx.GetMailAttachmentsEx = GetFunction(PBEx_Mail, "GetMailAttachmentsEx") Prototype SetMailAttachmentsEx(ID, MailID, Directory.p-Unicode, Attachments.p-Unicode, ErrorOutput) Global SetMailAttachmentsEx.SetMailAttachmentsEx = GetFunction(PBEx_Mail, "SetMailAttachmentsEx") Prototype MailEntryAttributeEx(ID, ErrorOutput) Global MailEntryAttributeEx.MailEntryAttributeEx = GetFunction(PBEx_Mail, "MailEntryAttributeEx") Prototype SetMailAttributeEx(ID, MailID, Directory.p-Unicode, Attributes, ErrorOutput) Global SetMailAttributeEx.SetMailAttributeEx = GetFunction(PBEx_Mail, "SetMailAttributeEx") Prototype GetMailAttributeEx(ID, MailID, Directory.p-Unicode, ErrorOutput) Global GetMailAttributeEx.GetMailAttributeEx = GetFunction(PBEx_Mail, "GetMailAttributeEx") EndIf Global Output$ = Space(1000000) Global ErrorOutput$ = Space(128) Procedure NewMail(MailID$) Protected MailID = Val(MailID$) GetMailSubjectEx(1, MailID, "", @Output$, @ErrorOutput$) Debug "Subject: " + Output$ GetMailFromEx(1, MailID, "", @Output$, @ErrorOutput$) Debug "From: " + Output$ GetMailToEx(1, MailID, "", @Output$, @ErrorOutput$) Debug "To: " + Output$ Debug "Date: " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetMailDateEx(1, MailID, "", @ErrorOutput$)) EndProcedure If OpenMailEx(1, #PBEx_Mail_Protocol_IMAP, "imap.gmail.com", 993, "yourmailaddress@gmail.com", "YourPassword", 1, @ErrorOutput$) ; ;Notify automatically when new emails arrive. ; If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ; ; BindMailEventEx(1, #PBEx_Mail_Event_NewMail, @NewMail(), GetCurrentProcessId_(), @ErrorOutput$) ; ; Repeat ; Select WaitWindowEvent() ; Case #PB_Event_CloseWindow ; End ; EndSelect ; ForEver ; EndIf ; ;Determine all directories (only for IMAP) ; If ExamineMailDirectoryEx(1, @ErrorOutput$) ; While NextMailDirectoryEntryEx(1, @ErrorOutput$) ; MailDirectoryEntryNameEx(1, @Output$, @ErrorOutput$) ; Debug Output$ ; Wend ; ; EndIf ;Determine all mail from inbox ;Or from any directory ;SetMailDirectoryEx(1, "Downloadportale/Chip", @ErrorOutput$) If ExamineMailEx(1, #PBEx_Mail_SeenType_AllMails, #PBEx_Mail_FetchType_AllData, 0, @ErrorOutput$) While NextMailEntryEx(1, @ErrorOutput$) MailEntrySubjectEx(1, @Output$, @ErrorOutput$) Debug "Subject: " + Output$ MailEntryFromEx(1, @Output$, @ErrorOutput$) Debug "From: " + Output$ MailEntryToEx(1, @Output$, @ErrorOutput$) Debug "To: " + Output$ Debug "Date: " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", MailEntryDateEx(1, @ErrorOutput$)) Debug MailIDEx(1, @ErrorOutput$) Debug Str(CountMailAttachmentsEx(1, @ErrorOutput$)) + " attachment(s)" If ExamineMailAttachmentsEx(1, @ErrorOutput$) While NextMailEntryAttachmentsEx(1, @ErrorOutput$) If MailEntryAttachmentsFileNameEx(1, @Output$, @ErrorOutput$) Debug Output$ EndIf Wend EndIf Debug "--------------------------------------------------" Wend EndIf CloseMailEx(1, @ErrorOutput$) Else Debug ErrorOutput$ EndIf CloseLibrary(PBEx_Mail) ; IDE Options = PureBasic 5.60 (Windows - x64) ; CursorPosition = 201 ; FirstLine = 167 ; Folding = - ; EnableXP ; EnableUser ; Executable = PB.Ex_MSSQL.exe ; CompileSourceDirectory ; EnableCompileCount = 782 ; EnableBuildCount = 7 ; EnableUnicode