10.8 Dağ Aslanındaki Mail.app Eklerini Otomatik Olarak Kaydet


0

Bir e-posta adresine gönderilen tüm e-postaları otomatik test@example.comolarak bu klasöre /Users/luomat/Dropbox/Incoming/e2w/(nerede /Users/luomat = $HOME) arayalım .

Mail.app'da kullanıyorum kural İşte:

görüntü tanımını buraya girin

Bu amaç için özel bir e-posta adresi belirledim ve bu kodu Gmail’den POP3 üzerinden alıyorum. Mesaj kırmızı renkte ve okundu olarak işaretlendi, ancak AppleScript çalışmıyor gibi görünüyor.

Çevrimiçi bulduğum iki "Postaları Kaydet" AppleScript ekini denedim, ancak ikisi de çalışmıyor.

(Bunları görmek istiyorsanız http://share.luo.ma/temp/mail-app-applescript/ adresinde bulabilirsiniz .)

Mail.app 10.8'deki Sandboxing kurallarının bunun çalışmasını engelleyip engellemediğini veya sadece yanlış mı yaptığımı merak ediyorum. Mail.app kurallarından AppleScript ile ilgili sorunların nasıl giderileceğinden emin değilim ve AppleScript'i gerçekten bilmiyorum, çevrimiçi olarak bulduğum bu iki komut dosyasını ne yapmak istediğime uyacak şekilde düzenledim.

İşte başarmaya çalıştığım şey (İdeal olarak):

  1. E-posta düz metin ise, mesajı "Kullanıcılar / luomat / Dropbox / Gelen / e2w /" e-posta adresinden gelen konu satırı gibi.

  2. E-postanın ekleri varsa, "/ Users / luomat / Dropbox / Incoming / e2w /" içinde e-postanın Konusunu klasör adı olarak kullanarak bir klasör oluşturun ve ardından e-postanın gövdesini bu klasördeki metin olarak "gövde" olarak kaydedin. .txt "ve ekleri orijinal olarak adlandırılanlar gibi kaydedin.

Not: Bu AppleScript'ten sonra / Users / luomat / Dropbox / Gelen / e2w / otomatik olarak işlenecek ve dosyalar Hazel kullanarak bu klasörden taşınacaktır, bu nedenle dosya adı çakışmaları hakkında endişelenmenize gerek yok.

Yanıtlar:


2

Bunu dene.

   using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        -- The folder to save the attachments in (must already exist)


        -- Save in a sub-folder based on the name of the rule in Mail

        set subFolder to name of theRule
        tell application "Finder"
            set attachmentsFolder to ((path to home folder as text) & "Dropbox:Attachments") as text
            if not (exists folder subFolder of folder attachmentsFolder) then
                make new folder at attachmentsFolder with properties {name:subFolder}
            end if
        end tell
        tell application "Mail"

            repeat with eachMessage in theMessages

                set {year:y, month:m, day:d, hours:h, minutes:min} to eachMessage's date sent
                set timeStamp to ("" & y & "-" & my pad(m as integer) & "-" & my pad(d) & "-" & my pad(h) & "-" & my pad(min))

                try
                    -- Save the attachment
                    repeat with theAttachment in eachMessage's mail attachments

                        set originalName to name of theAttachment
                        set savePath to attachmentsFolder & ":" & subFolder & ":" & timeStamp & " " & originalName
                        try
                            save theAttachment in file (savePath)
                        end try
                    end repeat

                    display dialog subFolder
                end try
            end repeat

        end tell
    end perform mail action with messages
end using terms from

-- Adds leading zeros to date components
on pad(n)
    return text -2 thru -1 of ("00" & n)
end pad

Blogumda Mail.app'da Daha Genel Olarak Otomatik Olarak Eklentileri Kaydet gönderdim


Bu ekleri kaydetmek için çalışır. E-postanın gövdesini korumaz, ancak bu benim için daha az önemli. Çok teşekkürler!
TJ Luoma

Mükemmel. Bu filtre her çalıştırıldığında bir onaylama iletişim kutusu alıyor gibiyim - nasıl devre dışı bırakılabileceğini biliyor musunuz?
magma

"display dialog subFolder" ı kaldırın veya yorumlayın.
Yorumlamak

Mail.app'da daha genel bir Otomatik Olarak Eklentileri Blogumda yayınladım markosx.com/thecocoaquest/…
markhunte
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.