Thêm tên tệp đính kèm vào chủ đề trong applescript của tôi?


0

Tôi là một người mới với applescript. Tôi đã quản lý để tập hợp một tập lệnh nhỏ thêm các tệp được chọn từ trình tìm vào tệp đính kèm email dưới dạng quy trình dịch vụ. Bây giờ tôi bị mắc kẹt về vấn đề cuối cùng. Tôi muốn thêm tên tệp vào chủ đề. Đây là bản thảo. Bất cứ ai có thể giúp đỡ?

property mailSubjectPrefix : "Datei(en) für dich: "
property subjAttNameSeparator : ", "
property attachSeparator : "*******"
property attachPrefix : "Anhänge:"

set theSubject to "Datei(en): "
set theContent to "Datei(en) für dich:"
set recipientAddress to {}


tell application "Contacts"

    set recipientAddress to "mail@mail.com"

end tell




tell application "Finder"
-- Make a list to gather the names of the selected files
set fileAliases to {}
-- Get the selection of the frontmost Finder window
set fileSelection to the selection
-- Iterate of the selection
repeat with fileItem in fileSelection
    copy the fileItem as alias to the end of fileAliases
end repeat
-- Check if the selection is not empty
if the number of items of fileAliases is 0 then
    -- Audible feedback, so the script always does something.
    beep
else
    -- Now talk to mail to create the message
    tell application "Mail"
        set newMessage to make new outgoing message at beginning with properties { content:theContent, visible:true}
        set mailSubject to {}
        -- Set a recipient



        tell newMessage
            make new to recipient at end with properties {address:recipientAddress}



        set MailSubject to fileAliases

        set oTID to AppleScript's text item delimiters
        set AppleScript's text item delimiters to subjAttNameSeparator
        set subject to mailSubjectPrefix & (mailSubject as string)
        set AppleScript's text item delimiters to oTID




        end tell
        -- Attach all the selected files
        repeat with fileAlias in fileAliases
            make new attachment with properties {file name:fileAlias} at after the last paragraph of newMessage

        end repeat




        -- Put Mail in the foreground
        activate


    end tell
end if
end tell

Điều gì xảy ra hiện tại khi bạn chạy tập lệnh này? Tôi có thể thấy bạn đã có một tuyên bố trong đó được thiết kế để chèn danh sách các tệp vào chủ đề. Kết quả của việc này là gì và bạn có thích kết quả này không?
CJK

Hiện tại tất cả đều hoạt động như ý định truyền cảm hứng cho chủ đề: Datei (en) für dich: Macintosh HD: Người dùng: ms: Tải xuống: Folder.png, Macintosh HD: Người dùng: ms: Tải xuống: 281769.png Tôi chỉ nhận được đường dẫn đầy đủ tên tập tin
Markus

Câu trả lời:


2

Đơn giản chỉ cần thay đổi dòng này:

    set MailSubject to fileAliases

đến đây:

    set mailSubject to fileAliases as string

    tell application "Finder" to get insertion location
    set text item delimiters of AppleScript to result

    set mailSubject to rest of text items of mailSubject

ĐỊA CHỈ:

Tôi hy vọng bạn không quan sát thấy rằng tập lệnh bạn trình bày trong câu hỏi của bạn chứa rất nhiều mã thừa và / hoặc hình thành xấu. Nó hoạt động tốt, vì vậy nó không có hậu quả lớn ngoài một trong những thẩm mỹ. Tuy nhiên, một tập lệnh gọn gàng hơn, được định dạng tốt sẽ giúp bạn dễ dàng xác định lỗi hơn và trong trường hợp các tập lệnh dài hơn thực hiện nhiều tác vụ hơn thì sẽ chạy hiệu quả / nhanh hơn.

Vì vậy, với suy nghĩ này, tôi đã tự do viết lại kịch bản của bạn, điều mà tôi hy vọng có thể hữu ích như một công cụ học tập, hoặc đơn giản là dễ dàng hơn để làm quen với nó nếu bạn muốn tự mình thay đổi nó.

    property mailSubjectPrefix : "Datei(en) für dich: "
    property subjAttNameSeparator : ", "
    property attachSeparator : "*******"
    property attachPrefix : "Anhänge:"

    set theSubject to "Datei(en): "
    set theContent to "Datei(en) für dich:\n\n"
    set recipientAddress to "mail@mail.com"


    -- Get the selection of the frontmost Finder window
    -- as a list of aliases
    tell application "Finder"
        set fileAliases to the selection as alias list
        set text item delimiters of AppleScript to insertion location
        set fileNames to rest of text items of (fileAliases as text)
    end tell


    -- Check if the selection is not empty
    if the number of fileAliases is 0 then return beep

    -- Now talk to mail to create the message
    tell application "Mail"
        set text item delimiters of AppleScript to subjAttNameSeparator
        tell (make new outgoing message at beginning ¬
            with properties {content:theContent, visible:true, subject:mailSubjectPrefix & (fileNames as string)})

            -- Add the recipient
            make new to recipient at end with properties {address:recipientAddress}

            -- Attach all the selected files
            repeat with fileAlias in fileAliases
                make new attachment with properties {file name:fileAlias} at after the last paragraph
            end repeat

        end tell

        -- Put Mail in the foreground
        activate
    end tell

Nếu bạn có bất kỳ câu hỏi nào cần làm rõ về bất kỳ điểm nào, vui lòng để lại nhận xét và tôi sẽ liên lạc lại với bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.