dukenukem264
Goto Top

Thunderbird, Link in Email von bestimmten Absender automatisch öffnen lassen

Hallo zusammen,

gibt es eine Möglichkeit in Thunderbird, bei dem der eingefügte Link in einer Email von bestimmten Absendern automatisch geöffnet wird?

z.B.: Email von Ebay-Kleinanzeige zum Verlängern der Anzeige kommt an (der Absender, den ich angebe) und der Link zum Verlängern der Anzeige wird dann automatisch geöffnet und die Email gelöscht?

Vielleicht ist es auch nur Wunschdenken. Irgendjemand vielleicht eine Idee oder so?

Vielen Dank
PS: Thunderbird ist die Version 91.0.3

Lg Dukenukem263

Content-ID: 1201398821

Url: https://administrator.de/forum/thunderbird-link-in-email-von-bestimmten-absender-automatisch-oeffnen-lassen-1201398821.html

Ausgedruckt am: 09.04.2025 um 12:04 Uhr

bloodstix
bloodstix 27.08.2021 um 14:50:54 Uhr
Goto Top
Hallo,

per default definitiv nicht. Vielleicht gibt es dazu ein Plugin, oder du
bastelst dir selbst ein Plugin.

Grüße
bloody
Dukenukem264
Dukenukem264 27.08.2021 um 14:53:20 Uhr
Goto Top
Hallo Bloody,

das habe ich mir fast gedacht. Bei den Plugins habe ich leider nichts gefunden.
Du meinst so eine Art Macro in Thunderbird? Du weißt nicht zufällig wo bzw. wie ich das machen kann? face-smile

Mfg
Dukenukem264
bloodstix
bloodstix 27.08.2021 um 14:58:08 Uhr
Goto Top
Da wirst du dich wohl durchbeißen müssen.
https://developer.thunderbird.net/add-ons/about-add-ons
Kannst jedoch noch schauen ob das ggf. per Filter geht, eine Aktion auszuführen aber ich berfürchte fast - selbst wenn - das es nicht flexibel genug konfigurierbar ist für deinen Zweck.
Dukenukem264
Dukenukem264 27.08.2021 um 15:00:39 Uhr
Goto Top
Danke trotzdem für deine Mühe face-smile

Mfg
Dukenukem264
149062
149062 27.08.2021 aktualisiert um 16:37:11 Uhr
Goto Top
Mach das doch gleich mit entsprechenden IMAP Bibliotheken anstatt in Thunderbird selbst.
IMAP Clients für die Kommandozeile gibts ja wie Sand am Meer. Für das automatische verarbeiten von Mails gibt es hier ja im Forum diverse Skripte, wie z.B.
E-Mail Client für Kommandozeile
Linux: Automatisiert Posteingang checken und Skript ausführen
usw.
colinardo
colinardo 27.08.2021 aktualisiert um 17:24:25 Uhr
Goto Top
Servus.
Zitat von @149062:
Mach das doch gleich mit entsprechenden IMAP Bibliotheken anstatt in Thunderbird selbst.
Würde ich auch machen. Lässt sich dann auch über Taskplaner und Co. laufen lassen.

Hier mal schnell ein Beispiel mit Powershell und der Mailkit-Bibliothek.

Link Regular Expression für das Extrahieren aus dem Body (Zeile 79) und Absenderadresse (Zeile 70) sind anzupassen. Hatte nur noch eine alte Mail zur Verfügung, kann sein das das nicht mehr aktuell ist.
# IMAP-Host
$IMAP_HOST = 'imap.domain.tld'  
# IMAP-Port
$IMAP_PORT = 993
# IMAP USERNAME
$IMAP_USERNAME = 'USERNAME'  
# IMAP PASSWORD
$IMAP_PASSWORD = 'PASSWORD'  
# ==========================

function Load-NugetAssembly {
    [CmdletBinding()]
    param(
        [string]$url,
        [string]$name,
        [string]$zipinternalpath,
        [switch]$downloadonly
    )
    # Accept all TLS protocols
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::GetNames([System.Net.SecurityProtocolType]) 
    if($psscriptroot -ne ''){  
        $localpath = join-path $psscriptroot $name
    }else{
        $localpath = join-path $env:TEMP $name
    }
    $tmp = "$env:TEMP\$([IO.Path]::GetRandomFileName())"  
    $zip = $null
    try{
        if(!(Test-Path $localpath)){
            Add-Type -A System.IO.Compression.FileSystem
            write-host "Downloading and extracting required library '$name' ... " -F Green -NoNewline  
            (New-Object System.Net.WebClient).DownloadFile($url, $tmp)
            $zip = [System.IO.Compression.ZipFile]::OpenRead($tmp)
            $zip.Entries | ?{$_.Fullname -eq $zipinternalpath} | %{
                [System.IO.Compression.ZipFileExtensions]::ExtractToFile($_,$localpath)
            }
            Unblock-File -Path $localpath
            write-host "OK" -F Green  
        }
        if(!$downloadonly.IsPresent){
            Add-Type -Path $localpath -EA Stop
        }

    }catch{
        write-host ($_.Exception.LoaderExceptions | fl | out-string)
        throw "Error: $($_.Exception.Message)"  

    }finally{
        if ($zip){$zip.Dispose()}
        if(Test-Path $tmp){del $tmp -Force}
    }  
}

Load-NugetAssembly 'https://www.nuget.org/api/v2/package/Portable.BouncyCastle/1.8.8' -name 'BouncyCastle.Crypto.dll' -zipinternalpath 'lib/net40/BouncyCastle.Crypto.dll' -EA Stop  
Load-NugetAssembly 'https://www.nuget.org/api/v2/package/System.Buffers/4.5.1' -name 'System.Buffers.dll' -zipinternalpath 'lib/net461/System.Buffers.dll' -EA Stop  
Load-NugetAssembly 'https://www.nuget.org/api/v2/package/MimeKit/2.10.1' -name 'MimeKit.dll' -zipinternalpath 'lib/net45/MimeKit.dll' -EA Stop  
Load-NugetAssembly 'https://www.nuget.org/api/v2/package/MailKit/2.10.1' -name 'MailKit.dll' -zipinternalpath 'lib/net45/MailKit.dll' -EA Stop  


try{
    # IMAP Client erstellen
    $imap = New-Object MailKit.Net.Imap.ImapClient
    # Mit IMAP Server verbinden
    $imap.Connect($IMAP_HOST,$IMAP_PORT,[MailKit.Security.SecureSocketOptions]::Auto)
    # Authentifizierung
    $imap.Authenticate($IMAP_USERNAME,$IMAP_PASSWORD)
    # Posteingang im ReadWrite Modus öffnen
    [void]$imap.Inbox.Open([MailKit.FolderAccess]::ReadWrite)

    # ungelesene Nachrichten mit bestimmtem Absender im Posteingang suchen
    $message_ids = $imap.Inbox.Search([MailKit.Search.SearchQuery]::And([MailKit.Search.SearchQuery]::NotSeen,[MailKit.Search.SearchQuery]::FromContains('noreply@ebay-kleinanzeigen.de')))  
    
    # wenn es Nachrichten gibt
    if($message_ids.Count -gt 0){
        # Für jede Nachricht
        foreach ($id in $message_ids){
            # Nachricht von ID abrufen
            $m = $imap.Inbox.GetMessage($id)
            # suche nach einem bestimmten Link mittels Regex
            $link = [regex]::Match($m.HtmlBody,'(?is)href="([^"]+anzeige-verlaengern-mail\.html[^"]+)').Groups[1].Value  
            # wenn Link gefunden wurde
            if ($link){
                # rufe den Link auf
                "Opening Link: $link"  
                $result = Invoke-WebRequest $link
                # Zeige das Ergebnis
                $result
                # markiere die Nachricht als gelesen
                $imap.Inbox.AddFlags($id,[MailKit.MessageFlags]::Seen,$true)    
            }
                
        }
    }else{
        # Keine ungelesenen Nachrichten vorhanden
        write-host "No unseen message with sender in inbox."  
    }
    # close inbox
    $imap.Inbox.Close($false)
}catch{
    throw $_
}finally{
    # Disconnect
    if ($imap.Connected){
        $imap.Disconnect($true)
    }
}

Ansonsten, kleines Add-On für Thunderbird wäre auch kein großes Problem.

Auf Anfrage kann ich auch das liefern => PN

Grüße Uwe