DT3 Mail legt sich nicht in den richtigen Ordner ab

Hallo,
leider schaffe ich es nicht, Mails mittels dem Script " Mail Rule - File Messages& attachments" in eine gewünschte Datenbank abzulegen.
Den property pDatabasePath habe ich genau benannt und mit DT2 verglichen. Bei DT2 läuft alles wie geschmiert, nur in DT3 legt er jedesmal in eine unterschiedliche Datenbank ab.
Einstellungen in Mail und den Festplattenzugriff hab ich aktiviert.
Hab ich etwas übersehen oder geht das Ganze in der Beta Version noch nicht richtig?

Gruß Rippchen

Der Code der V2/V3-Skripte könnte evtl. weiterhelfen.

Und wo gibts diese V2/V3 Scripte? Bzw. was müßte dann geändert werden?

Die Installation der Skripte erfolgt über DEVONthink 3 > Add-Ons installieren.

Es ist unmöglich zu sagen, was geändert werden muss, ohne zu sehen, welches Skript Sie gerade ausführen.
(Übersetzt mit https://deepl.com)

Ich verwende dieses Script:
– Mail Rule - File messages & attachments

– Created by Christian Grunenberg on Fri May 25 2012.

– Copyright © 2012-2014. All rights reserved.

– POSIX path of destination database. Global inbox is used if not specified.

property pDatabasePath : “/Desktop/Mail.dtBase2”

– This string is used when the message subject is empty

property pNoSubjectString : “(no subject)”

using terms from application “Mail”

on perform mail action with messages theMessages for rule theRule

– Location of destination groups.

set pMessageLocation to “/” & (name of theRule)

set pAttachmentLocation to pMessageLocation & “/Attachments”

tell application id “DNtp”

if pDatabasePath is “” then

set destination_database to inbox

else

set destination_database to open database pDatabasePath – Ensure that the database is open

end if

set message_group to create location pMessageLocation in destination_database

set attachment_group to create location pAttachmentLocation in destination_database

end tell

tell application “Mail”

set theFolder to (POSIX path of ( path to temporary items ))

repeat with theMessage in theMessages

try

tell theMessage

set {theDateReceived, theDateSent, theSender, theSubject, theSource, theReadFlag} to { the date received, the date sent, the sender, subject, the source, the read status}

end tell

if theSubject is equal to “” then set theSubject to pNoSubjectString

tell application id “DNtp” to create record with {name:theSubject & “.eml”, type: unknown , creation date:theDateSent, modification date:theDateReceived, URL:theSender, source:(theSource as string ), unread:( not theReadFlag)} in message_group

repeat with theAttachment in mail attachments of theMessage

set theFile to theFolder & (name of theAttachment)

tell theAttachment to save in theFile

tell application id “DNtp”

set theAttachmentRecord to import theFile to attachment_group

set unread of theAttachmentRecord to ( not theReadFlag)

set URL of theAttachmentRecord to theSender

end tell

end repeat

end try

end repeat

end tell

end perform mail action with messages

end using terms from

Hab nach Update auf ox Monterey und Neuinstallation von DT3 leider wieder das gleiche Problem. Obwohl gleiches Skript mit Benennung des gewünschten Ordners, legt DT3 die Mail immer in die Datenbank ab, die zuletzt angeklickt wurde.
Braucht noch ein passendes Update von DT3 oder seh ich den Wald vor lauter Bäumen nicht?

Gruß Rippchen

Handelt es sich wirklich um obiges Skript? Dann hat es, wenn überhaupt, nur zufällig funktioniert, denn der Pfad…

…sollte vermutlich ~/Desktop/Mail.dtBase2 sein.

Ich glaube, ich habs…der Pfad sollte sein:
“Users/meine Festplatte/Desktop/Mail.dtBase2”

Leider hatte ich User ohne “s” am Ende geschrieben, ich hat die Brille nicht auf.

Danke für die schnelle Antwort…

Der korrekte Pfad dürfte entweder ~/Desktop/Mail.dtBase2 oder /Users/username/Desktop/Mail.dtBase2 sein. Ersteres ist dabei einfach die Kurzform, bei der zweiten Variante müsste der Username angepasst werden.

1 Like

Dazu mal 'ne Frage: Wäre es nicht sinnvoll, wenn die Methode openDatabase auch den Namen der Datenbank akzeptierte statt nur den Pfad zu ihr? Diese Pfade sind ja uU eine etwas kitzlige Angelegenheit (wie gerade gesehen) und können sich auch mal ändern.

Und mein Versuch, den Pfad einer geschlossenen Datenbank abzufragen, scheiterte. Aber DT kennt ja zumindest im UI die “Benutzten Datenbanken” – nur kann man die offenbar per Scripting nicht finden?

Das wird im Augenblick automatisch von macOS gehandhabt und hängt von den Systemeinstellungen ab, ist hier z.B. deaktiviert. Auch können Namen mitunter mehrdeutig sein. Der Pfad lässt sich aber relativ einfach ermitteln, indem man die Datenbank in ein Plain Text-Dokument in TextEdit zieht. Oder mit einem einzeiligen Skript:

tell application id "DNtp" to set the clipboard to (path of current database) as string