PB.Ex Mail (Windows)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

PB.Ex Mail (Windows)

Beitrag von RSBasic »

Hallo,

mit dieser Bibliothek kann man einen eigenen E-Mail-Client entwickeln und E-Mails per IMAP und POP3 herunterladen. SSL und TLS werden unterstützt.

Funktionen:
  • OpenMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = OpenMailEx(ID, Protocol, MailServer$, Port, UserName$, Password$, SSL, ProtocolVersion, @ErrorOutput$)
    • Beschreibung: Stellt eine Verbindung zum Mailserver her.
    • Parameter:
      1. ID: Eine eindeutige Nummer. #PB_Any kann verwendet werden, um die Nummer automatisch zu generieren.
      2. Protocol: Eine der folgenden Protokolle kann verwendet werden:
        • #PBEx_Mail_Protocol_IMAP
        • #PBEx_Mail_Protocol_POP3: Hinweis: Bitte benutzen Sie dieses Protokoll derzeit nur für Testzwecken. Dieses Protokoll ist veraltet und wird nicht mehr weiterentwickelt.
        • #PBEx_Mail_Protocol_SMTP: Nur gültig für SendMailEx() und SendMailFileEx().
      3. MailServer$: Die Adresse zum Mailserver
      4. Port: Port-Nummer
      5. UserName$: Benutzername oder E-Mail-Adresse für die Anmeldung.
      6. Password$: Passwort für die Anmeldung.
      7. SSL: Wenn 1, dann wird eine verschlüsselte Verbindung hergestellt.
      8. ProtocolVersion: Legt die Protokollversion für die verschlüsselte Verbindung fest. Folgende Konstanten können verwendet werden:
        • #PBEx_Mail_ProtocolVersion_SSL30: SSL 3.0
        • #PBEx_Mail_ProtocolVersion_TLS10: TLS 1.0
        • #PBEx_Mail_ProtocolVersion_TLS11: TLS 1.1
        • #PBEx_Mail_ProtocolVersion_TLS12: TLS 1.2
        • #PBEx_Mail_ProtocolVersion_TLS13: TLS 1.3
      9. @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich. Falls #PB_Any verwendet wird, dann wird die ID zurückgegeben.
    • Beispielcode:

      Code: Alles auswählen

      EnableExplicit
      
      Global PBEx_Mail
      
      #PBEx_Mail_Version$ = "1.1.6.0"
      #PBEx_Mail_Protocol_IMAP = 0
      #PBEx_Mail_Protocol_POP3 = 1
      #PBEx_Mail_Protocol_SMTP = 2
      #PBEx_Mail_ProtocolVersion_SSL30 = 0
      #PBEx_Mail_ProtocolVersion_TLS10 = 1
      #PBEx_Mail_ProtocolVersion_TLS11 = 2
      #PBEx_Mail_ProtocolVersion_TLS12 = 3
      #PBEx_Mail_ProtocolVersion_TLS13 = 4
      #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, ProtocolVersion, 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, 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, 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, #PBEx_Mail_ProtocolVersion_TLS13, @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)
      
      
  • CloseMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = CloseMailEx(ID, @ErrorOutput$)
    • Beschreibung: Schließt die Verbindung zum Mailserver.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • ExamineMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = ExamineMailDirectoryEx(ID, @ErrorOutput$)
    • Beschreibung: Startet die Auflistung von der Verzeichnisstruktur. Bei POP3 werden keine Verzeichnisse unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailDirectoryEntryNameEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailDirectoryEntryNameEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Der Name des Verzeichnisses wird ermittelt. Diese Funktion ist nur innerhalb der ExamineMailDirectoryEx-Schleife gültig. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: Der Name des Verzeichnisses wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • ExamineMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = ExamineMailEx(ID, SeenType, FetchType, SortByNew, @ErrorOutput$)
    • Beschreibung: Startet die Auflistung vom aktuellen Verzeichnis.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. SeenType: Legt fest, ob alle E-Mails oder nur E-Mails, die bereits gelesen oder noch nicht gelesen wurden, ermittelt werden. Diese Funktion wird bei POP3 nicht unterstützt. Folgende Konstanten können verwendet werden:
        • #PBEx_Mail_SeenType_AllMails
        • #PBEx_Mail_SeenType_OnlySeenMails
        • #PBEx_Mail_SeenType_OnlyUnseenMails
      3. FetchType: Legt fest, ob alle Daten oder nur die Header-Daten der E-Mails heruntergeladen werden. Diese Funktion wird bei POP3 nicht unterstützt. Folgende Konstanten können verwendet werden:
        • #PBEx_Mail_FetchType_AllData
        • #PBEx_Mail_FetchType_OnlyHeaderData
      4. SortByNew: Legt die Reihenfolge zum Ermitteln der E-Mails fest:
        • 0: Die E-Mails, die zuerst erstellt wurden, werden zuerst ermittelt.
        • 1: Die neusten E-Mails werden zuerst ermittelt.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntrySubjectEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntrySubjectEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den Betreff der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: Betreff der E-Mail wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryBodyEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryBodyEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den Inhalt der E-Mail. Es kann entweder Reintext oder HTML sein. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: Inhalt der E-Mail wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryFromEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryFromEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den Absender der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: Absender der E-Mail wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryToEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryToEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den Empfänger der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: Empfänger der E-Mail wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryCCEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryCCEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den CC-Empfänger (sichtbarer Empfänger) der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: CC-Empfänger der E-Mail wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryBCCEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryBCCEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den BCC-Empfänger (unsichtbarer Empfänger) der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: BCC-Empfänger der E-Mail wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryDateEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryDateEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt das Datum der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Das Datum der E-Mail. Der Wert kann mit der Date-Bibliothek verwendet werden.
  • MailEntryPriorityEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryPriorityEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt die festgelegte Priorität der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Priorität der E-Mail. Folgende Konstanten können abgefragt werden:
      • #PBEx_Mail_Priority_Normal
      • #PBEx_Mail_Priority_Low
      • #PBEx_Mail_Priority_High
  • FinishMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = FinishMailDirectoryEx(ID, @ErrorOutput$)
    • Beschreibung: Schließt die Auflistung von der Verzeichnisstruktur.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • FinishMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = FinishMailEx(ID, @ErrorOutput$)
    • Beschreibung: Schließt die Auflistung vom aktuellen Verzeichnis.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • IsMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = IsMailEx(ID, @ErrorOutput$)
    • Beschreibung: Überprüft, ob die Verbindung noch gültig ist.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: ID ist gültig.
  • NextMailDirectoryEntryEx()
    • Syntax:

      Code: Alles auswählen

      Result = NextMailDirectoryEntryEx(ID, @ErrorOutput$)
    • Beschreibung: Das nächste Verzeichnis wird ermittelt. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • NextMailEntryEx()
    • Syntax:

      Code: Alles auswählen

      Result = NextMailEntryEx(ID, @ErrorOutput$)
    • Beschreibung: Die nächste E-Mail wird ermittelt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailDirectoryEx(ID, DirectoryPath$, @ErrorOutput$)
    • Beschreibung: Öffnet das Verzeichnis, um die E-Mails dieses Verzeichnisses zu ermitteln. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. DirectoryPath$: Name oder vollständiger Pfad des Verzeichnisses. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • CreateMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = CreateMailDirectoryEx(ID, DirectoryName$, @ErrorOutput$)
    • Beschreibung: Erstellt ein neues Verzeichnis. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. DirectoryName$: Name des Verzeichnisses.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • RenameMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = RenameMailDirectoryEx(ID, OldDirectoryName$, NewDirectoryName$, @ErrorOutput$)
    • Beschreibung: Benennt ein vorhandenes Verzeichnis um. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. OldDirectoryName$: Name des Verzeichnisses.
      3. NewDirectoryName$: Neuer Name für das Verzeichnis.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • DeleteMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = DeleteMailDirectoryEx(ID, DirectoryName$, @ErrorOutput$)
    • Beschreibung: Entfernt ein vorhandenes Verzeichnis. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. DirectoryName$: Name des Verzeichnisses.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • CreateMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = CreateMailEx(ID, Directory$, Subject$, Body$, Priority, From$, ToAddress$, CC$, BCC$, Attachments$, @ErrorOutput$)
    • Beschreibung: Erstellt eine neue E-Mail, die aber nicht gesendet wird.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Directory$: Name des Verzeichnisses
      3. Subject$: Betreff der E-Mail
      4. Body$: Inhalt der E-Mail
      5. Priority: Festlegung der Priorität. Eine der folgenden Konstanten kann verwendet werden:
        • #PBEx_Mail_Priority_Normal
        • #PBEx_Mail_Priority_Low
        • #PBEx_Mail_Priority_High
      6. From$: E-Mail-Adresse des Absender.
      7. ToAddress$: E-Mail-Adresse des Empfänger. Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      8. CC$: E-Mail-Adresse des Empfänger (sichtbarer Empfänger). Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      9. BCC$: E-Mail-Adresse des Empfänger (unsichtbarer Empfänger). Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      10. Attachments$: Vollständiger Pfad zur Datei, die als Anhang hinzugefügt werden soll. Mehrere Anhänge können mit dem |-Zeichen getrennt werden.
      11. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • BindMailEventEx()
    • Syntax:

      Code: Alles auswählen

      Result = BindMailEventEx(ID, Event, @PBProcedure(), PID, @ErrorOutput$)
    • Beschreibung: Verknüft eine Prozedur mit einem Event.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Event: Legt das Event fest, welches abgefragt werden soll. Eine der folgenden Konstanten kann verwendet werden:
        • #PBEx_Mail_Event_NewMail: Das Event wird ausgelöst, sobald neue E-Mails vorhanden sind.
      3. @PBProcedure(): Die Handle-Nummer der Prozedur, die automatisch aufgerufen wird, wenn das festgelegte Event ausgelöst wurde.
      4. PID: Die PID-Nummer des eigenen Programms.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailSubjectEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailSubjectEx(ID, MailID, DirectoryPath$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den Betreff.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der Betreff wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailBodyEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailBodyEx(ID, MailID, DirectoryPath$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den Inhalt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der Inhalt wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailFromEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailFromEx(ID, MailID, DirectoryPath$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den Absender.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der Absender wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailToEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailToEx(ID, MailID, DirectoryPath$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den Empfänger.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der Empfänger wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailCCEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailCCEx(ID, MailID, DirectoryPath$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den CC-Empfänger. (sichtbarer Empfänger)
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der CC-Empfänger wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailBCCEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailBCCEx(ID, MailID, DirectoryPath$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den BCC-Empfänger. (unsichtbarer Empfänger)
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der BCC-Empfänger wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailDateEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailDateEx(ID, MailID, DirectoryPath$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID das Datum.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Das Datum der E-Mail. Der Wert kann mit der Date-Bibliothek verwendet werden.
  • GetMailPriorityEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailPriorityEx(ID, MailID, DirectoryPath$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID die Priorität.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Die Priorität der E-Mail. Folgende Konstanten können abgefragt werden:
      • #PBEx_Mail_Priority_Normal
      • #PBEx_Mail_Priority_Low
      • #PBEx_Mail_Priority_High
  • MailEntryBodySizeEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryBodySizeEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt die Größe in Bytes für das Allokieren des Speichers.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Größe in Bytes
  • MailIDEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailIDEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt die Mail-ID, um damit Eigenschaften auszulesen oder zu ändern. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: ID der E-Mail
  • SetMailSubjectEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailSubjectEx(ID, MailID, Directory$, Text$, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID den Betreff. Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Text$: Ändert mit dem angegebenen Wert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailBodyEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailBodyEx(ID, MailID, Directory$, Text$, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID den Inhalt. Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Text$: Ändert mit dem angegebenen Wert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailFromEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailFromEx(ID, MailID, Directory$, Text$, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID den Absender. Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Text$: Ändert mit dem angegebenen Wert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailToEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailToEx(ID, MailID, Directory$, Text$, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID den Empfänger. Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Text$: Ändert mit dem angegebenen Wert. Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailCCEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailCCEx(ID, MailID, Directory$, Text$, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID den CC-Empfänger (sichtbarer Empfänger). Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Text$: Ändert mit dem angegebenen Wert. Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailBCCEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailBCCEx(ID, MailID, Directory$, Text$, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID den BCC-Empfänger (unsichtbarer Empfänger). Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Text$: Ändert mit dem angegebenen Wert. Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailPriorityEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailPriorityEx(ID, MailID, Directory$, Priority, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der Mail-ID die Priorität. Aufgrund der Spezifikation, dass die E-Mail nicht nachträglich modifiziert werden darf, wird die geänderte E-Mail als neue E-Mail gespeichert. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name des Verzeichnisses
      4. Priority: Priorität der E-Mail. Eine der folgenden Konstanten kann verwendet werden:
        • #PBEx_Mail_Priority_Normal
        • #PBEx_Mail_Priority_Low
        • #PBEx_Mail_Priority_High
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • DeleteMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = DeleteMailEx(ID, MailID, Directory$, @ErrorOutput$)
    • Beschreibung: Entfernt mit Hilfe der Mail-ID und des Verzeichnisses die E-Mail. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MoveMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = MoveMailEx(ID, MailID, Directory$, TargetDirectory$, @ErrorOutput$)
    • Beschreibung: Verschiebt mit Hilfe der Mail-ID und des Quellverzeichnisses die E-Mail in das angegebene Zielverzeichnis. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: ID der E-Mail
      3. Directory$: Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. TargetDirectory$: Name oder vollständiger Pfad zum Verzeichnis, in das die E-Mail verschoben werden soll. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • CountMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = CountMailEx(ID, Directory$, @ErrorOutput$)
    • Beschreibung: Ermittelt, wie viele E-Mails im angegebenen Verzeichnis existieren.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Directory$: Name oder vollständiger Pfad zum Verzeichnis. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Anzahl der E-Mails
  • CountMailDirectoryEx()
    • Syntax:

      Code: Alles auswählen

      Result = CountMailDirectoryEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt, wie viele Verzeichnisse existieren. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Anzahl der Verzeichnisse
  • SendMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = SendMailEx(ID, Subject$, Body$, Priority, From$, ToAddress$, CC$, BCC$, Attachments$, @ErrorOutput$)
    • Beschreibung: Sendet eine neue E-Mail.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Subject$: Betreff der E-Mail
      3. Body$: Inhalt der E-Mail
      4. Priority: Festlegung der Priorität. Eine der folgenden Konstanten kann verwendet werden:
        • #PBEx_Mail_Priority_Normal
        • #PBEx_Mail_Priority_Low
        • #PBEx_Mail_Priority_High
      5. From$: E-Mail-Adresse des Absender.
      6. ToAddress$: E-Mail-Adresse des Empfänger. Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      7. CC$: E-Mail-Adresse des Empfänger (sichtbarer Empfänger). Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      8. BCC$: E-Mail-Adresse des Empfänger (unsichtbarer Empfänger). Mehrere E-Mail-Adressen können mit Semikolon getrennt werden.
      9. Attachments$: Vollständiger Pfad zur Datei, die als Anhang hinzugefügt werden soll. Mehrere Anhänge können mit dem |-Zeichen getrennt werden. Aliasse werden unterstützt. Beispiel: OriginalDatei.zip<AliasDatei.zip>
      10. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SaveMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = SaveMailEx(ID, MailID, Directory$, Path$, @ErrorOutput$)
    • Beschreibung: Speichert eine vorhandene E-Mail als EML-Datei auf die Festplatte.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. Path$: Vollständiger Pfad inkl. Dateiname, wohin die E-Mail exportiert werden soll.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailHeaderEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailHeaderEx(ID, MailID, Directory$, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den vollständigen Header der E-Mail.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer einer einzelnen E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @Output$: Der Header wird in diese Variable gespeichert.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryHeaderEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryHeaderEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den Header der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output$: Der Header wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • LoadMailEx()
    • Syntax:

      Code: Alles auswählen

      Result = LoadMailEx(ID, Path$, Directory$, @ErrorOutput$)
    • Beschreibung: Importiert eine EML-Datei in das angegebene Verzeichnis. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Path$: Vollständiger Pfad zur EML-Datei.
      3. Directory$: Name oder vollständiger Pfad zum Verzeichnis. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: MailID der importierten E-Mail.
  • SendMailFileEx()
    • Syntax:

      Code: Alles auswählen

      Result = SendMailFileEx(ID, Path$, @ErrorOutput$)
    • Beschreibung: Sendet eine E-Mail mit Hilfe einer EML-Datei.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Path$: Vollständiger Pfad zur EML-Datei.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • CountMailAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = CountMailAttachmentsEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt, wie viele Anhänge in der aktuellen E-Mail existieren. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Anzahl der Anhänge
  • ExamineMailAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = ExamineMailAttachmentsEx(ID, @ErrorOutput$)
    • Beschreibung: Startet die Auflistung der Anhänge von der aktuellen E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig oder wenn vorher GetMailAttachmentsEx() aufgerufen wurde.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • NextMailEntryAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = NextMailEntryAttachmentsEx(ID, @ErrorOutput$)
    • Beschreibung: Der nächste Anhang der aktuellen E-Mail wird ermittelt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryAttachmentsFileNameEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryAttachmentsFileNameEx(ID, @Output, @ErrorOutput$)
    • Beschreibung: Ermittelt den Dateinamen des Anhangs aus der aktuellen E-Mail. Diese Funktion ist nur innerhalb der ExamineMailAttachmentsEx-Schleife gültig oder wenn vorher GetMailAttachmentsEx() aufgerufen wurde.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @Output: Dateiname des Anhangs wird in diese Variable gespeichert.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SaveMailEntryAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = SaveMailEntryAttachmentsEx(ID, Path$, @ErrorOutput$)
    • Beschreibung: Speichert den Anhang als Datei auf die Festplatte. Diese Funktion ist nur innerhalb der ExamineMailAttachmentsEx-Schleife gültig oder wenn vorher GetMailAttachmentsEx() aufgerufen wurde.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. Path$: Vollständiger Pfad inkl. Dateiname, wohin der Anhang exportiert werden soll.
      3. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • FinishMailAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = FinishMailAttachmentsEx(ID, @ErrorOutput$)
    • Beschreibung: Schließt die Auflistung der Anhänge von der aktuellen E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig oder wenn vorher GetMailAttachmentsEx() aufgerufen wurde.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • GetMailAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailAttachmentsEx(ID, MailID, DirectoryPath$, @ErrorOutput$)
    • Beschreibung: Legt für die Auflistung der Anhänge die E-Mail. Diese Funktion kann vor ExamineMailAttachmentsEx-Schleife aufgerufen werden, damit die Funktion ExamineMailAttachmentsEx() nicht alle E-Mails, sondern die angegebene E-Mail ermittelt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer der E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • SetMailAttachmentsEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailAttachmentsEx(ID, MailID, DirectoryPath$, Attachments$, @ErrorOutput$)
    • Beschreibung: Fügt Dateien als Anhang hinzu.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer der E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. Attachments$: Vollständiger Pfad zur Datei, die als Anhang hinzugefügt werden soll. Mehrere Anhänge können mit dem |-Zeichen getrennt werden.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
  • MailEntryAttributeEx()
    • Syntax:

      Code: Alles auswählen

      Result = MailEntryAttributeEx(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt den Status der E-Mail. Diese Funktion ist nur innerhalb der ExamineMailEx-Schleife gültig. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Folgende Konstanten können abgefragt werden:
      • #PBEx_Mail_Attribute_Unseen: E-Mail wurde noch nicht gelesen.
      • #PBEx_Mail_Attribute_Seen: E-Mail wurde bereits gelesen.
  • GetMailAttributeEx()
    • Syntax:

      Code: Alles auswählen

      Result = GetMailAttributeEx(ID, MailID, DirectoryPath$, @ErrorOutput$)
    • Beschreibung: Ermittelt mit Hilfe der MailID den Status der E-Mail. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer der E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert: Folgende Konstanten können abgefragt werden:
      • #PBEx_Mail_Attribute_Unseen: E-Mail wurde noch nicht gelesen.
      • #PBEx_Mail_Attribute_Seen: E-Mail wurde bereits gelesen.
  • SetMailAttributeEx()
    • Syntax:

      Code: Alles auswählen

      Result = SetMailAttributeEx(ID, MailID, DirectoryPath$, Attributes, @ErrorOutput$)
    • Beschreibung: Ändert mit Hilfe der MailID den Status der E-Mail. Diese Funktion wird bei POP3 nicht unterstützt.
    • Parameter:
      1. ID: Die Nummer der Verbindung.
      2. MailID: Die Nummer der E-Mail.
      3. DirectoryPath$: Der Name oder vollständiger Pfad zum Verzeichnis, in dem sich die angegebene E-Mail befindet. Wenn leer, dann wird das Posteingang-Verzeichnis ausgewählt.
      4. Attributes: Folgende Konstanten können verwendet werden:
        • #PBEx_Mail_Attribute_Unseen: E-Mail wurde noch nicht gelesen.
        • #PBEx_Mail_Attribute_Seen: E-Mail wurde bereits gelesen.
      5. @ErrorOutput$: Falls ein Fehler auftritt, wird die Fehlermeldung in die String-Variable gespeichert.
    • Rückgabewert:
      • 1: Der Vorgang war erfolgreich.
Hinweis: Bei Google Mail kann es passieren, dass der eigene Client aus Sicherheitsgründen blockiert wird. Um explizit zu erlauben: Google Konto > Sicherheit > Zugriff durch weniger sichere Apps
Je nach Anzahl der E-Mails in einem Verzeichnis und je nach Internetgeschwindigkeit kann es ggf. etwas dauern.

Systemvoraussetzungen:
  • Windows Vista oder höher
  • .NET Framework 4.8 oder höher
  • Unicode-Aktivierung (standardmäßig ab PB 5.50)
Lizenz: Diese DLL-Datei ist kostenlos und darf sowohl privat als auch kommerziell verwendet werden.
Folgende Copyright-Texte müssen mitgeliefert werden:
Copyright (c) 2012-2014 Torben Könke
MimeKit is Copyright (C) 2012-2018 Xamarin Inc.
Copyright © 2019 RSBasic.de
Download: https://www.rsbasic.de/downloads/downlo ... x_Mail.zip
Bild

Ich würde mich über Feedbacks, Verbesserungsvorschläge, Fehlermeldungen oder Wünsche sehr freuen. Wer mich unterstützen möchte, kann mir auch was kleines spenden. Danke :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: PB.Ex Mail (Windows)

Beitrag von Bisonte »

:allright:

Geniale Sache. GMX, Strato, GMail, Web.de und mein Provider funktionieren damit :allright:

Konstruktive Kritik bisher :

Um einen Email Client zu basteln, müsste man jetzt nur noch wissen wie man :
  • Mails
  • senden
  • löschen
  • verschieben (IMAP)
  • Ordner (IMAP)
  • anlegen
  • verschieben
  • löschen
kann...

Edit:
Die Größe des "MailBody" auslesbar machen um den "Output$" Speicher gezielter reservieren zu können.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

PB.Ex Mail 1.0.1.0 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: CreateMailDirectoryEx()
  • Hinzugefügt: RenameMailDirectoryEx()
  • Hinzugefügt: DeleteMailDirectoryEx()
  • Hinzugefügt: CreateMalEx()
  • Hinzugefügt: BindMailEventEx(): #PBEx_Mail_Event_NewMail: Damit wird automatisch eine PB-Prozedur aufgerufen, sobald neue E-Mails vorhanden sind.
  • Hinzugefügt: GetMailSubjectEx()
  • Hinzugefügt: GetMailBodyEx()
  • Hinzugefügt: GetMailFromEx()
  • Hinzugefügt: GetMailToEx()
  • Hinzugefügt: GetMailCCEx()
  • Hinzugefügt: GetMailBCCEx()
  • Hinzugefügt: GetMailDateEx()
  • Hinzugefügt: GetMailPriorityEx()
  • Hinzugefügt: MailEntryBodySizeEx(): Die Größe in Bytes von Body kann vorher für das Allokieren des Speichers ermittelt werden.
  • Geändert: MailEntryPriorityEx(): Name der Priorität wird nicht mehr zurückgegeben, sondern der Wert einer der folgenden Konstanten: #PBEx_Mail_Priority_Normal, #PBEx_Mail_Priority_Low, #PBEx_Mail_Priority_High
@Bisonte
Weitere Funktionen kommen demnächst.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von HeX0R »

Boah ey, G.E.N.I.A.L.!!
Hast mir echt den Arsch gerettet, vielen Dank dafür!
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: PB.Ex Mail (Windows)

Beitrag von Bisonte »

Um das mal mit jugendlichen Worten auszudrücken : Boah Alter... Krass! :allright:

Edit :

Ich hab da einen Tippfehler entdeckt :

Code: Alles auswählen

CreateMalEx
Soll dann vermutlich CreateMailEx sein... (Die DLL Funktion ist ja egal wie sie heisst ;) Nur beim Code Lesen stolpert man drüber ;)

Und eine Frage noch :

Die "MessageID" einer Email bekomme ich woher ?
Oder ist das ein Handle das NUR in der "BindEventProzedure" gültig ist ? (So wie bei Callbacks z.B. wParam, lParam o.s.ä)
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Danke :)
Bisonte hat geschrieben:Ich hab da einen Tippfehler entdeckt :

Code: Alles auswählen

CreateMalEx
Soll dann vermutlich CreateMailEx sein... (Die DLL Funktion ist ja egal wie sie heisst ;) Nur beim Code Lesen stolpert man drüber ;)
Danke für den Hinweis. Sollte so nicht sein. :D Ich werde es anpassen.
Bisonte hat geschrieben:Und eine Frage noch :

Die "MessageID" einer Email bekomme ich woher ?
Oder ist das ein Handle das NUR in der "BindEventProzedure" gültig ist ? (So wie bei Callbacks z.B. wParam, lParam o.s.ä)
Es ist bereits in Entwicklung. Funktionen wie MailIDEx(), SearchMailEx(), um die MessageID einer einzelnen E-Mail zu bekommen, um gezielt die Eigenschaften auszulesen und zu ändern, kommen bald.
Die Änderungsfunktionen mit Hilfe der MessageID sind auch schon in Entwicklung. Es dauert aber noch etwas, bis ich die ganzen Funktionen umgesetzt habe.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PB.Ex Mail (Windows)

Beitrag von Nino »

@RSBasic: :allright:
Bisonte hat geschrieben:Und eine Frage noch :

Die "MessageID" einer Email bekomme ich woher ?
Oder ist das ein Handle das NUR in der "BindEventProzedure" gültig ist ? (So wie bei Callbacks z.B. wParam, lParam o.s.ä)
Die Message-ID einer E-Mail wird beim Versenden der Mail erzeugt, ist weltweit einmalig (bzw. soll sie sein) und befindet sich im Header jeder Mail (s. z.B. in Thunderbird "Ansicht" > "Nachrichten-Quelltext").
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Ich glaube, ich kann die von mir vorbereiteten Änderungsfunktionen (SetMailSubjectEx(), SetMailBodyEx(), ...) wegschmeißen.
Kann es sein, dass man beim IMAP keine Möglichkeit hat, die Daten einer E-Mail mit Hilfe einer UID zu modifizieren? Ich kann zwar lokal ändern, aber zum IMAP-Server nur als neue geänderte E-Mail hochladen, aber nicht überschreiben.
Weiß jemand von euch, ob es bei diesem Protokoll so vorgesehen ist, dass man keine Mails auf einem IMAP-Server verändern kann?

\\Edit:
Obwohl ich vorhin ewig gegoogelt habe, habe ich jetzt doch eine Antwort gefunden:
stackoverflow.com hat geschrieben:IMAP is designed for server-side management of mailboxes, not for editing messages. So yes, you would have to retrieve the contents of the desired message (FETCH), then delete that message from the server (STORE a \Deleted flag on the message and then EXPUNGE deleted messages), and then upload the updated message to the server (APPEND). There are no IMAP commands for editing the contents of an existing message, only for updating flags related to existing messages (STORE).
Indeed, the specification guarantees that a specific message object (identified with a UID) is immutable. That's an important guarantee for caching email clients. Being able to edit a message would break that guarantee.
Na toll, ich dachte, es ginge sowas. Naja, dann kann man nur als neue Mail wieder hochladen und die andere Mail löschen.

\\Edit2:
Das steht auch in den Spezifikationen drin: https://tools.ietf.org/html/rfc3501#page-8
RFC 3501 hat geschrieben:The unique identifier of a message MUST NOT change during the
session, [...]
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex Mail (Windows)

Beitrag von RSBasic »

Ich habe eine Frage an euch: Brauchst ihr für diese DLL eine Mail-Senden-Funktion per SMTP? Ich frage deshalb, weil PB diese Funktion ja bereits hat.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PB.Ex Mail (Windows)

Beitrag von Nino »

RSBasic hat geschrieben:Ich habe eine Frage an euch: Brauchst ihr für diese DLL eine Mail-Senden-Funktion per SMTP? Ich frage deshalb, weil PB diese Funktion ja bereits hat.
Ehrlich gesagt: Wenn ich die DLL ernsthaft verwenden will, brauche ich eine flexible Funktion zum Senden. Insbesondere sollte das Erzeugen von Mails komplett vom Versenden getrennt sein.
Funktionen analog zu anderen Bibliotheken wären m.E. gut, etwa
  • CreateMailEx()
  • SaveMailEx()
  • LoadMailEx()
  • CatchmailEx()
Z.B. nach dem Laden kann ich dann in meinem Code SendMailEx() o.Ä. aufrufen.

Der Hintergrund, warum das getrennt sein sollte ist folgender:
Ich bin froh, wenn ich mich um das Senden nicht zu kümmern brauche, will aber ggf. die E-Mails selbst mit Hilfe meines eigenen Codes erzeugen. So wie die eingebaute PB-Funktion das macht (die schreibt da sogar noch irgendwelche merkwürdigen Header-Felder rein, glaube ich) ist es nur "zum Spielen", aber weder flexibel noch leistungsfähig, und man hat den Vorgang nicht wirklich unter Kontrolle.
Dass ich aber in wichtigen Punkten selbst bestimmen kann was (auf dem Computer) passiert, ist überhaupt der Grund weshalb ich programmieren gelernt habe. :-)
Antworten