Спросите у Script Doctor: Решение проблем с почтой

click fraud protection

AppleScript — отличный инструмент для автоматизации приложений, которые вы ежедневно используете на своем Mac.если Вы можете выяснить правильный код. Мы здесь, чтобы помочь: мы попросили эксперта по сценариям и Automator Бена Уолди решить некоторые проблемы с читателем с помощью AppleScript. Идея состоит не только в том, чтобы предоставить конкретные решения для конкретных проблем, но и в том, чтобы продемонстрировать некоторые общие принципы и предоставить примеры сценариев, которые, немного поработав, можно адаптировать для решения множества других проблемы тоже. Прежде всего: несколько вопросов о почте. Запустите редактор AppleScript (/Applications/Utilities) и следуйте инструкциям.

В: У меня в Почте куча папок почтовых ящиков, некоторые из них имеют несколько уровней вложенности. За эти годы я поместил в них тысячи сообщений, некоторые из которых так и не пометил как прочитанные. Есть ли способ просмотреть все эти папки и пометить все сообщения как прочитанные?

Абсолютно. Вы хотите, чтобы Mail установил для атрибута статуса чтения каждого непрочитанного сообщения в папке «Входящие», локальных почтовых ящиках и почтовых ящиках на вашем почтовом сервере значение

ЛОЖЬ. Однако будьте готовы: в зависимости от количества сообщений и почтовых ящиков, эта процедура может занять некоторое время. И поскольку время ожидания отдельных команд AppleScript истекает, если они не завершатся в течение 2 минут, вы также можете получить сообщение об ошибке. Вот почему хорошей идеей будет заключить ваш скрипт в обертка тайм-аута для предотвращения таких ошибок. Сценарий ниже позволяет завершить каждое действие до 5 минут; не стесняйтесь увеличивать период ожидания, если это необходимо.

-- Разрешить до 5 минут с тайм-аутом в 300 секунд сообщить приложению "Почта" -- Обработать все непрочитанные сообщения в папке "Входящие" установить статус чтения каждого сообщения папки "Входящие", где его статус чтения = от ложного до истинного - Обрабатывать все непрочитанные сообщения на вашем локальном Mac, установить статус чтения для каждого сообщения каждого почтового ящика, где его статус чтения = ложный до истинного -- Обработать все непрочитанные сообщения на вашем почтовом сервере, установить статус прочитанного для каждого сообщения каждого почтового ящика каждой учетной записи, где его статус прочитанного = false to true end tellend тайм-аут

В: По причинам, связанным с работой, меня попросили распечатать тысячи сообщений электронной почты Mail в формате PDF. Как я могу это автоматизировать?

К сожалению, в Mail нет встроенной поддержки AppleScript для сохранения сообщения в формате PDF, поэтому решение не так просто, как может показаться. Но это определенно возможно. Хитрость заключается в том, чтобы использовать некоторые сценарии пользовательского интерфейса, чтобы обойти ограничение. Сначала перейдите к системным настройкам специальных возможностей и убедитесь, что Включить доступ для вспомогательных устройств флажок установлен; Сценарии пользовательского интерфейса не работают, если этот параметр не включен.

Этот сценарий сохраняет самое открытое сообщение в формате PDF. Для обработки нескольких сообщений вы можете расширить сценарий, заключив его в цикл повторения и добавив некоторую защиту от ошибок. ( Вот сценарий который сохраняет все входящие сообщения в формате PDF.)

сообщить приложению «Системные события» сообщить процессу «Почта» -- Переместить почту на передний план, установить самое переднее значение true -- Выберите пункт меню «Печать» (первый пункт меню «Файл» строки меню 1, чье имя начинается с «Печать»), окно сообщения 1 -- Подождите, пока не появится лист печати, повторите, пока не появится лист 1. Щелчок по пункту меню PDF (первый пункт меню 1 кнопки меню «PDF», имя которой начинается с «Сохранить как PDF») -- Подождите, пока не появится надпись «Сохранить как лист», повторите, пока не появится лист 1. 1 -- Перейдите к рабочему столу нажатием клавиши "D" с помощью команды вниз -- Введите имя для нажатия клавиши PDF "Мой PDF.pdf" -- Нажмите кнопку "Сохранить" нажмите кнопку "Сохранить" рассказывать

Имейте в виду, что этот сценарий привязан к интерфейсу Mail и предполагает существование определенных меню, кнопок и окон. Если Apple что-то изменит в будущей версии OS X, вам, возможно, придется внести некоторые коррективы в сценарий.

В: Когда я нахожусь в офисе, я подключаю свой MacBook Air к внешнему монитору, который затем использую в качестве основного экрана; экран Air в основном предназначен для моего календаря и почты. Мне бы хотелось иметь сценарий, который я мог бы запускать, когда прихожу на работу, и который бы автоматически перемещал эти окна приложений на экран Air и изменял их размер. Можно ли это сделать?

Конечно. Когда вы находитесь в офисе, переместите окна Календаря и Почты на экран Air и расположите их там, где вы хотите. Теперь вы готовы зафиксировать их границы (положение и размер). Запустите каждый из следующих сценариев в редакторе AppleScript. Они вернут границы в нижней панели результатов; отметьте результаты.

-- Чтобы получить положение и размер окна календаря, приложение "Календарь" возвращает границы переднего окна.
-- Чтобы получить положение и размер окна Почты, скажите, что приложение "Почта" возвращает границы фронтального окна просмотра сообщения.

Допустим, первый скрипт возвращает значения {-1426, 102, -491, 930}, а второй возвращается --> {-955, 100, -7, 845}. Вставьте эти числа в скрипт ниже. Когда вы запустите скрипт, он изменит размер и положение окон соответствующим образом. Сохраните сценарий как приложение и перетащите его в Dock. Всякий раз, когда вы находитесь в офисе, просто нажмите на нее, чтобы сбросить окна. Возможно, вы захотите написать вторую версию сценария, чтобы изменить их положение, когда вы используете только экран MacBook.

-- Чтобы установить положение и размер окна календаря, приложение "Календарь" установит границы переднего окна на {-1426, 102, -491, 930}end Tell -- Чтобы установить положение и размер окна Mail, приложение "Почта" устанавливает границы окна просмотра сообщений на {-955, 100, -7, 845} end рассказывать

Есть проблема, с которой может помочь Script Doctor? Отправьте их на [email protected].

Обновлено 29.10.12 16:45 PT, чтобы исправить ошибку редактирования в вопросе: печать в PDF-файлы.

  • Apr 17, 2023
  • 59
  • 0
instagram story viewer