2

MacOS Sierra.

Кажется, что это возможно на основе следующего скрипта, который создает новое правило:

tell application "Mail"
    set newRule to make new rule at end of rules with properties { ... }
    tell newRule
        make new rule condition at end of rule conditions with properties { ... }
    end tell
end tell

То, что я хотел бы иметь возможность сделать что-то вроде этого:

tell application "Mail"
    set existingRule to (* get a specific rule already in Mail Preferences *)
    tell existingRule
        make new rule condition at end of rule conditions with properties {rule type:message content, qualifier:does contain value, expression:"woohoo"}
    end tell
end tell

Похоже, я не могу найти способ извлечь правило, которое уже сохранено.

1 ответ1

2

В этом примере мы пытаемся получить отправителя электронного письма, а затем добавить его к правилу электронной почты, которое выполняет то же действие, если электронное письмо находится в списке.

tell application "Mail"
    (* The nameOfJunkRule is the string you gave in Mail.app. *)
    (* This is the part that begins to address the question. *)
    set markAsJunkRule to get rule nameOfJunkRule

    (* Get the selected messages in Mail.app *)
    set theMessages to the selection

    repeat with theMessage in theMessages
        (* Get the sender of the message. *)
        set senderAddress to sender of theMessage

        (* We want to make sure the address isn't already in the list. *)
        set foundAddress to false
        repeat with theCondition in rule conditions of markAsJunkRule
            if senderAddress = expression of theCondition then
                set foundAddress to true
                exit repeat
            end if
        end repeat

        (* If we need to add a new address to the rule. This is to finish the answer. *)
        if foundAddress = false then
            tell markAsJunkRule
                make new rule condition at end of rule conditions with properties {rule type:from header, qualifier:does contain value, expression:senderAddress}
            end tell
        end if
    end repeat
end tell

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .