AppleScript: Чистим почту в Mail.app

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

applescript icon

Первый — это рассылки уведомлений от Facebook и ВКонтакте, отписаться от них не очень удобно потому что на эти сайты я захожу только если происходят определенные события типа новых сообщений или приглашений, о которых я и узнаю через рассылки. Такие сообщения нужны только чтобы узнать что произошло, а после прочтения их можно съесть удалить.

Второй — это рассылки рекламных акций и скидок действующих определенный промежуток времени (в приведенном скрипте это AirAsia).

Конечно, можно вообще не обращать внимания и такую «мертвую почту», потому что почтовики дают достаточно свободного места (на моем аккаунте в гугле за 4 года я занял только 2%). Но если Вы как и я уже обратили на нее внимание, то предлагаю вам следующий скрипт.

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 -- выставляем дату фильтрации почты старше 30 дней
set filter_date to ((current date) - 30 * days)
 
-- обращаемся к приложению Mail.app
tell application "Mail"
	-- получаем список входящих сообщений для нужного аккаунта
	set message_list to messages of mailbox "INBOX" of account "12345@gmail.com"
	-- (account – это не адрес почты, а название аккаунта)
	-- … и их количество
	set message_count to number of items in message_list
	-- в цикле обрабатываем каждое сообщение в списке
	repeat with i from 1 to message_count
		-- получаем текущее обрабатываемое сообщение
		set message_item to item i of message_list
		-- … его отправителя
		set message_sender to sender of message_item
		-- проверяем выполнение условий
		-- если отправитель содержит строку "ВКонтакте"
		if message_sender contains "ВКонтакте" then
			-- и сообщение уже прочитано
			if (read status of message_item) = true then
				-- удаляем его (при удалении сообщение попадет в корзину)
				delete message_item
			end if
		-- если отправитель "AirAsia <donotreply_edm@airasia.com>"
		else if message_sender = "AirAsia <donotreply_edm@airasia.com>" then
			-- и дата отправки сообщения больше даты фильтрации (30 дней)
			if (date sent of message_item) < filter_date then
				-- тоже удаляем
				delete message_item
			end if
		end if
	end repeat
end tell

 

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


Редакция пока не поставила оценку
1 Star2 Stars3 Stars4 Stars5 Stars6 Stars7 Stars8 Stars9 Stars10 Stars (Пока не проголосовали)
Загрузка...
Читатели ещё не оценили запись, станьте первым!



Автор:
В 2010 году окончил Московский Технический Университет Связи и Информатики по специальности Автоматизация Управления. С 2008 года профессионально занимаюсь разработкой приложений для iOS. Увлекаюсь вопросами оптимизации и автоматизации рабочих процессов. AppleScript начал изучать в 2009 году для повышения своей эффективности.

Оставьте комментарий

© 2011 Программы для Mac OS, iPhone и iPad