FTP Links in Emails per Script downloaden

S

svenson1

Aktives Mitglied
Thread Starter
Dabei seit
18.07.2007
Beiträge
111
Reaktionspunkte
12
Hallo,
ich bekomme hin und wieder Emails mit FTP Downloadlinks. Um mir den manuellen Weg zu ersparen, wollte ich eine Regel erstellen, um die Links automatisch zu laden. Der Link in den Emails ist vollständig mit Benutzername, Passwort, Server u.s.w.
Das geht nur über ein AppleScript oder?
 
Würde mich nicht wundern wenn der jdownloader das kann. Inhalt der E-Mails markieren/kopieren und dann werden die Links aus der E-Mail gefischt. Wenn sogar Benutzername und Passwort enthalten sind, entfällt vermutlich sogar die Einrichtung.
 
Der Download soll ja automatisch beim abholen neuer Emails passieren.....

Ich wollte eine Regel in Mail erstellen die im Inhalt der E-Mail nach dem Link sucht. Als Aktion müsste dann ein Applescript ausgeführt werden, welches den Download anschiebt.
Wie spreche ich aber im AppleScript genau diese E-Mail an?
 
Die durch der Regel gesuchten Emails sind in der Variablen eachMessage gespeichert. Und wie selektiere ich jetzt den darin enthaltenen FTP-Pfad - mit offset?
 
Hat niemand für mich eine Idee, wie ich die Links in den Emails automatisch downloaden kann? Wenn ich die Zeile in die Zwischenablage packe und im Terminal einfüge lädt er mir die Datei. Ich weiss jetzt nur nicht, wie ich das in eine Regel bekomme......
 
Ich habe genau dieses Thema 2009 selbst gehabt. Link
Den Beitrag den ich damals verlinkt habe, finde ich jetzt leider nicht mehr. Ich muss das nochmal rekapitulieren… aber du bist auf dem richtigen Weg.
 
  • Gefällt mir
Reaktionen: svenson1
@usls1 das ist echt schade, dass der Link nicht mehr geht. Und das Script hast du nicht noch irgendwo?
 
Ich bin jetzt einfach mal davon ausgegangen, dass der Link für den Download immer in Zeile 16 des Emailcontent steht (ftp://anonymous:anonymous@14........), und habe folgendes Script erstellt:

using terms from application "Mail"
on perform mail action with messages theMessages for rule theRule
tell application "Mail"
repeat with eachMessage in theMessages
set myContent to content of theMessages
set myURL to paragraph 16 of myContent
tell application "Safari" to open location myURL
end repeat
end tell
end perform mail action with messages
end
using terms from

Es passiert aber noch gar nichts ;-(
 
Zuletzt bearbeitet von einem Moderator:
ich habe das script noch verändert und will mir nur die isolierte Zeile anzeigen lassen (myFTP) - geht noch nicht ;-(
Der gesamte Inhalt - myContent - funktioniert, der wird angezeigt.

Code:
using terms from application "Mail"
    on perform mail action with messages theDetectedMessages for rule theRule
        tell application "Mail"
            set theMessageCount to count of theDetectedMessages
            repeat with a from 1 to theMessageCount
                set theCurrentMessage to item a of theDetectedMessages
                -- Process the message
                set myContent to content of theCurrentMessage
                set offFTPstart to (offset of "ftp:" in myContent)
                set offFTPend to (offset of ".zip" in myContent)
                set myFTP to text from offFTPstart to offFTPend
                display dialog myFTP
            end repeat
        end tell
    end perform mail action with messages
end using terms from
 
ich würde das so probieren
Code:
repeat blabla
set myURL to do shell script "echo " & eachMessageContent & " | grep -iom 1 ftp://.*"
end repeat
 
nein, er tut leider nicht ;-(
In den Emails steht viel Text und zwischen drin mit einer neuen Zeile beginnend die FTP-Zeile. Sollte er mit deiner Scriptzeile diese stelle finden?
 
Ja. Aber eachmessagecontent ist nur eine symbolvariable für deinen mailinhalt. Die musst du natürlich anpassen.

Ich schau mir das mal am WE an.
Kannst du so eine mail veröffentlichen oder stehen da sensible Daten drin? Zugangsdaten solltest du ausixxen.
 
Ja na klar kann ich das - die E-Mail sieht so aus:

------------------------------------------
Sehr geehrte Damen und Herren,

zu dem im Betreff genannten Auftrag erhalten Sie nachfolgend den Downloadlink für die Druckdaten.

......

ACHTUNG: Bitte achten Sie auf einen neutralen Versand mit unserem Lieferschein.

Mit freundlichen Grüßen
------------------------------------------

So ist der Aufbau der E-Mail. Der Pfad steht in jeder E-Mail in der selben Zeile. Man könnte den Pfad also auch anhand der Zeile heraussuchen. Oder eben wie ich versucht hatte mit Offset.

Danke schon mal für deine Hilfe.
 
Zuletzt bearbeitet von einem Moderator:
@Olivetti hast du dir können die Email schon einmal ansehen?
 
Code:
using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        repeat with eachMessage in theMessages
            tell application "Mail"
                set this_subject to subject of eachMessage
                set this_body to content of eachMessage
                #display dialog this_subject
                #display dialog this_body
                #say 1
                #set myURL to paragraph 5 of this_body # variante 1
                set myURL to do shell script "echo " & quoted form of this_body & " | grep -iom 1 'ftp://.*'" # variante 2
                display dialog myURL
                #do shell script "wget -p ~/Downloads " & myURL
                #say 2
            end tell
        end repeat
    end perform mail action with messages
end using terms from
schau dir beide "set myURL to blabla"-zeilen an. entweder nimmst die 1. mit paragraph, wenn der link immer in z.b. zeile 5 steht oder die 2. variante mit grep, die dir den ersten enthaltenen ftp-link rausfischt.
 
Zuletzt bearbeitet:
Danke @Olivetti - ich habe getestet........

Variante 2, wo er den Link selbst herausfischt wäre mir am liebsten (falls sich doch mal etwas ändern sollte an der Länge der Email). Der Inhalt der Variable myURL beginnt mit "ftp://......" und geht aber bis an das Ende der Email. Geht also noch nicht. Kann man die Länge noch begrenzen mit z.B. hinter grep ".....ftp://annonymous*.zip"?

Bei Variante 1 ist der Inhalt von myURL auch sehr groß. In Zeile 5 steht der komplette Inhalt beginnend mit "Sehr geehrte....." bis Ende der Email. Kann ich also so auch noch nicht verarbeiten.
 
ich habe jetzt mal ein bisschen die man grep gelesen und es mit
'\<ftp zip\>' probiert - bringt Applescript einen Syntaxerror ;-(
 
du hast dann evtl. ein zeilenumbruchproblem oder keine nurtextmail, dann wird's eh' bleed.
hast du das script auch wirklich komplett ersetzt, nicht nur einzelne bereiche?

---

das ergibt für mich leider auch keinen sinn.
 
Zuletzt bearbeitet von einem Moderator:
hast du das script auch wirklich komplett ersetzt, nicht nur einzelne bereiche?
Ja habe ich gemacht.

Zeilenumbruchproblem - das denke ich auch, dass in der original E-Mail kein Umbruch definiert ist.
Das zeigt ja eigentlich "paragraph 5" bei Variante 1 - es steht die ganze E-Mail-Nachricht in dieser einen Zeile. Ich habe von 1 begonnen und alle durchgetestet bis eben bei 5 alles drin stand.
Deshalb hatte ich die Hoffnung, das er den Link als Wort erkennt und habe mit den grep-Optionen Wortanfang (ftp) und Wortende (zip) definiert. Geht aber nicht.
 
Code:
grep -iom 1 'ftp://.*\\.zip'
 
Zurück
Oben Unten