Automatisches Versenden von Bildern per E-Mail an eine bestimmte E-Mail-Adresse

Ich habe ein kleines Problem. Vielleicht könnt ihr mir dabei helfen. Ich fotografiere viele Portraits für einen Kunden. Wie 200 jeden Tag. Ich muss jedes einzelne Portrait per Mail mailen. Eine Galerie mit allen Porträts in einem ist aus Datenschutzgründen nicht erlaubt. Der Kunde will definitiv E-Mails. Ich habe versucht, eine Applescript/Automator-Aktion zu programmieren, um dies automatisch zu tun.

Mein Plan ist, alle Dateien wie folgt zu benennen: name@client.com_2847.jpg und die Aktion den Rest der Magie erledigen zu lassen.

Es funktioniert irgendwie, außer dass ich die E-Mail-Adresse nicht aus der JPG-Datei extrahieren kann.

Wie extrahiere ich die E-Mail aus der Datei (z. B. durch Löschen der letzten 9 Ziffern) und füge sie als Empfänger ein?

Ich habe hier eine ähnliche Frage gesehen: Automator -> Datei an E-Mail senden (von Dateiname)

aber aus irgendeinem Grund bekomme ich viele Syntaxfehler.

Danke!

Könnten Sie die Bilder nicht einfach auf Drobpox oder Google Drive hochladen und ihnen einen Link schicken?

Antworten (1)

Da Sie in Ihrer Frage keinen Code, keine Fehlermeldung(en) oder auch nur wie Sie Ihre Lösung implementiert haben, biete ich das Folgende als Beispiel dafür, wie ich die anstehende Aufgabe automatisieren könnte. Beachten Sie, dass ich, obwohl ich mir den Link in Ihrer Frage angesehen habe , nichtsdestotrotz, da er für Outlook war und Sie die Frage mit mail.app markiert haben , ignorieren werde, was verlinkt war, und meinen Weg von Grund auf neu fortsetzen werde.

In diesem Beispielszenario habe ich eine hierarchische Ordnerstruktur unter ~/Photos erstellt , zB ~/Photos/Clients/Name/Emailed Photos , und dies ist der Ordner, in den ich die Zielfotos ziehe, die die Namenskonvention haben, zB name @client.com_2847.jpg und den Ordner, an den der Automator-Ordneraktions- Workflow angehängt wird.

Im Automator :

  • Datei > Neu
  • Wählen Sie Ordneraktion und klicken Sie auf die Schaltfläche Auswählen .
  • Wählen Sie in der Ordneraktion erhält Dateien und Ordner, die zum Listenfeld Ordner auswählen hinzugefügt wurden , Folgendes aus: Andere...
  • Navigieren Sie zum Zielordner, auf den die Aktion angewendet werden soll, wählen Sie ihn aus und klicken Sie auf die Schaltfläche Auswählen .
  • Fügen Sie dem neu erstellten Workflow „Ordneraktion “ eine Aktion „AppleScript ausführen“ hinzu .
  • Markieren Sie den standardmäßigen AppleScript- Code und löschen Sie ihn.
  • Kopieren Sie den unten gezeigten AppleScript- Code und fügen Sie ihn in die Aktion „AppleScript ausführen“ ein .
  • Speichern Sie die Ordneraktion als, zB: Fotos per E-Mail an Name@Kunde senden
    • Dies wird zB gespeichert als:
      ~/Library/Workflows/Applications/Folder Actions/Email Photos to name@client.workflow

Wenn Sie jetzt Fotos mit der Namenskonvention, z. B. name@client.com_2847.jpg , in den Zielordner ziehen, z. B. ~/Photos/Clients/Name/Fotos per E-Mail , wird eine E-Mail für jedes Foto erstellt und die Zieldatei angehängt. Anfänglich wird die E-Mail nicht automatisch gesendet , bis Sie das Kommentarzeichen entfernen, das --von vor der -- send theMessageCodezeile entfernen und die Änderungen speichern. Dies ist zunächst auskommentiert, sodass Sie mit einer Datei testen und Ihre Betreff- und Nachrichteneinstellungen Ihren Anforderungen anpassen können. Ich würde eine Datei mit Ihrer E-Mail-Adresse zu Testzwecken verwenden, indem ich zuerst eine und dann mehrere gleichzeitig mache.

Betreff und Inhalt der E-Mail-Nachricht sind zunächst auf „Porträts“ bzw. „Foto angehängt“ als Platzhalter gesetzt. Zusätzlich gibt es eine weitere Zeile mit kommentiertem Code , -- delay 2, über der -- send theMessageCodezeile , die Sie möglicherweise implementieren müssen/möchten, wenn Sie eine große hinzufügen Anzahl von Dateien gleichzeitig in den Zielordner, an den die Ordneraktion angehängt ist, da schnelles Senden Probleme verursachen kann. Beachten Sie, dass der Wert des Befehlsdelay muss möglicherweise höher eingestellt werden, um den Bedingungen gerecht zu werden, und Sie müssen nur einige Tests durchführen, um zu sehen, was für Sie funktioniert. Während ich einige Tests durchgeführt habe, habe ich eine sehr kleine Datei (3 KB) verwendet, die ich zu Testzwecken repliziert und nacheinander benannt habe. Ich gehe davon aus, dass Ihre Fotos viel größer sein werden.

AppleScript -Code :


property theMessageSubject : "Portraits"
property theMessageContent : "Photo attached."

on GetTheRecipientNameFrom(theFilename)
    --      # Get the filename portion of the alias passed to the Folder Action.        
    set AppleScript's text item delimiters to ":"
    set theFilename to last item of text items of theFilename
    set AppleScript's text item delimiters to ""
    --      # Make sure the filename contains both an '_' and "@".
    --      # This doesn't guarantee a properly formed email address,
    --      # however it does attempt to validate what was passed as one.   
    if theFilename contains "_" and theFilename contains "@" then
        set AppleScript's text item delimiters to "_"
        set theFilename to first item of text items of theFilename
        set AppleScript's text item delimiters to ""
        return theFilename
    else
        return ""
    end if
end GetTheRecipientNameFrom

on run {input, parameters}
    set fileCount to (count of items of input)
    set i to 1
    repeat fileCount times
        set theMessageAttachment to item i of input
        set theRecipient to GetTheRecipientNameFrom(theMessageAttachment as string)
        if theRecipient is not equal to "" then
            tell application "Mail"
                activate
                set theMessage to make new outgoing message with properties {visible:true, subject:theMessageSubject, content:theMessageContent & linefeed & linefeed}
                tell theMessage
                    make new to recipient at end of to recipients with properties {address:theRecipient}
                end tell
                tell content of theMessage
                    make new attachment with properties {file name:theMessageAttachment} at after last paragraph
                end tell
                set i to i + 1
                -- delay 2
                -- send theMessage
            end tell
        else
            set i to i + 1
        end if
    end repeat
end run

Beachten Sie, dass wie kodiert, wenn eine Datei im Zielordner abgelegt wird, der Ordner, an den die Ordneraktion angehängt ist, nicht der Namenskonvention von zB name@client.com_2847.jpg entspricht , dann sollte keine E-Mail für diese Datei erstellt werden , es sei denn, der Teil des Dateinamens vor dem Unterstrich enthält das @-Symbol und andere Zeichen. Mit anderen Worten, der einzige Fehler beim Überprüfen des Codes, wie er ist, versucht zu validieren, ist, dass der Dateiname eine gültige E-Mail-Adresse nur unter der Prämisse enthält, wenn er sowohl einen Unterstrich als auch ein @-Symbol enthält, dann wird angenommen, dass der Dateiname z. B. name@client entspricht .com_2847.jpg . Eine strengere Fehlerprüfung könnte codiert werden, aber das überlasse ich Ihnen, wenn das Dargestellte nicht ausreicht.

Darüber hinaus könnten andere Formen der allgemeinen Fehlerprüfung implementiert werden, dh sicherstellen, dass die Datei vor dem Senden tatsächlich angehängt wurde usw. Diese Antwort soll jedoch ein einfaches Beispiel sein, nicht unbedingt eine vollständig codierte Lösung. Es liegt an Ihnen, sicherzustellen, dass Sie eine angemessene Fehlerprüfung implementieren, wenn die Bedingungen dies rechtfertigen.

Wie Sie vielleicht anhand der folgenden Bilder erkennen können, habe ich dies in einer Umgebung vor OS X 10.9 geschrieben und getestet, genauer gesagt in OS X 10.8.6, und ich habe in den Einstellungen für die Barrierefreiheit "Zugriff für Hilfsgeräte aktivieren" aktiviert . In OS X 10.9 und höher, einschließlich der neuesten Version von macOS, Sierra, müssen Sie möglicherweise Mail und/oder Automator zu Systemeinstellungen > Sicherheit & Datenschutz > Datenschutz > Eingabehilfen hinzufügen , damit die Ordneraktion funktioniert. Ich bin derzeit nicht in der Lage, diese Versionen zu testen, aber wenn es bei Ihnen nicht funktioniert, fügen Sie diese Apps entsprechend hinzu.

Automator-Ordner-Aktionsbild

E-Mail-Nachrichtenbild