2017-07-21 1 views
1

Referenzieren this solution, ich versuche, ein Automator-Skript zu erstellen, das eine URL hinter einer HTML-E-Mail-Schaltfläche extrahiert. Wenn Sie jedoch die E-Mail-Nachrichtenquelle anstelle von Inhalt abrufen, wird Rich Text zurückgegeben, der die URL-Links durch "=" und Zeilenumbrüche unterbricht. Ergebnisse wie "http://www.=" und "http://www.w3=" werden anstelle der vollständigen URLs angezeigt. Wie kann ich die URL von einer E-Mail-Quelltext-HTML-E-Mail erhalten?Automator-Workflow - Extrahieren von E-Mail-Nachrichtenquellen URLs Einfügen von "=" + Zeilenumbrüchen in URLs

Der aktuelle Automator-Workflow sieht wie folgt aus:

  1. Erhalten Ausgewählte Mail-Nachrichten
  2. Run Applescript:

    auf Lauf {Eingabe, Parameter}

    set mailContentList to {} 
    tell application "Mail" 
        repeat with selectedMail in input 
         set end of mailContentList to source of selectedMail 
        end repeat 
    end tell 
    return mailContentList 
    

    Endlauf

  3. Extra ct URLs aus Text
  4. Sie mehr Sachen mit diesen URLs

habe ich versucht, einen Apple Schritt zwischen 2 und 3 Einfügen des Text zu verarbeiten, um die „=“ & Zeilenumbrüche zu entfernen, aber mein Code scheint nicht zu etwas ändern. Hier ist, was ich versucht habe:

auf Lauf {Eingabe, Parameter}

set AppleScript's text item delimiters to {"=" & return & linefeed, "=" & return, "=" & linefeed, "=" & character id 8232} 
    set theTextItems to every text item of input 
    set AppleScript's text item delimiters to "" 
    set theText to theTextItems as string 
    set AppleScript's text item delimiters to "" 
    return theText 
end run 

Irgendwelche Ideen, wie man entweder auf den Buggy rtf zu verarbeiten, die zusätzlichen Einsätze = und Zeilenumbrüchen oder die Eingabe in einem anderen Format erhalten das gibt die Schaltfläche hrefs als vollständige URLs zurück?

Antwort

0

endete ich diese Lösung, indem Sie einen Run JavaScript-Block anstelle des Applescript-Block mit:

function run(input, parameters) { 
    var text = input[0].replace(/=(?:\r\n|\r|\n)/g, '') 
    return text; 
} 

, die den Buggy Verhalten behebt.