Я использую яблочный скрипт для хранения части входящих писем в базе данных. Этот скрипт вызывается через специальные почтовые правила. Он прекрасно работает месяцами, за одним исключением: если выбор в INBOX содержит дополнительно письма, которые не соответствуют критериям почтового правила, эти письма также передаются в сценарий (что на мой взгляд является ошибкой Apple High Sierra ) Поэтому мне приходится сравнивать перенесенные записи данных с соответствующим правилом. Ниже тестового сценария
using terms from application "Mail"
on perform mail action with messages theSelectedMessages for rule theRule
tell application "Mail"
...
set ruleName to name of theRule
set ruleScriptName to name of me
repeat with theCondition in rule conditions of theRule
set {expression:ruleExpr, header:ruleHeader, rule type:ruleType, qualifier:ruleQualifier} to theCondition
log ...
end repeat
end tell
end perform mail action with messages
end using terms from
Связанный код от Apple в списке пользователей SyncedRules.plist:
<dict>
<key>CriterionUniqueId</key>
<string>XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</string>
<key>Expression</key>
<string>noreply@email.com</string>
<key>Header</key>
<string>From</string>
<key>Qualifier</key>
<string>EndsWith</string>
</dict>
Проблема: я всегда получаю следующие значения данных для условий правила:
ruleExpr: noreply@email.com
ruleType: 束constant ****tfro損
ruleHeader:
ruleQualifier: 束constant ****rqbw損
Переменная «ruleHeader» должна фактически содержать значение «from», но она пуста. Кроме того, содержимое «ruleType» и «ruleQualifier» также не доступно для чтения.
«Библиотека функций» редактора сценариев не помогает.
Есть много подсказок в inte rnet добавить новое правило, но я не нашел ни документов, ни подсказок для получения содержимого условия правила. Любая помощь приветствуется!