Как скопировать ссылку на сообщение Mail.app без перетаскивания?

8

Я веду ежедневный журнал, и мне нравятся ссылки на электронные письма, мой почтовый клиент - Mail.app в OSX. Я могу перетаскивать ссылки на мою программу журнала (VoodooPad), но я бы действительно предпочел скопировать и вставить их, поэтому у меня есть ссылка, которая выглядит как сообщение: //%3C30533360.1931252053580.bla.bla.bla.

Есть ли простой способ получить ссылку в этом формате из Mail.app?

Лорин Хохштайн
источник

Ответы:

9

Основываясь на ответе splattne и этой записи macosxhints, я понял, как это сделать. Теперь нужно просто использовать что-то вроде Quicksilver из FastScripts, чтобы привязать его к сочетанию клавиш.

tell application "Mail"
  set selectedMessages to selection
  set theMessage to item 1 of selectedMessages  
  set messageid to message id of theMessage
    -- Make URL (must use URL-encoded values for "<" and ">")
  set urlText to "message://" & "%3c" & messageid & "%3e"  
  set the clipboard to (urlText)     
end tell
Лорин Хохштайн
источник
1
Это также работает в OS X Mavericks, где функциональность перетаскивания, кажется, поражает.
Рафаэль Бугаевски,
1

Если я правильно интерпретирую ваш вопрос, вы можете использовать вариант AppleScript в следующих сообщениях в блоге:

splattne
источник
Это дает мне большую часть пути туда. Однако я не уверен, как указать «почтовое сообщение, которое в данный момент выбрано» в Applescript.
Лорин Хохштейн
0

Не ответ на вопрос, на который вы уже ответили сами, а только для архивов:

После того, как вы сохранили файл с веб-сайта или по электронной почте, вы можете использовать Get Info в Finder, чтобы найти источник файла . Для вложения электронной почты это показывает отправителя сообщения, тему и URL, ссылающийся на это сообщение.

Вместо получения информации можно также использовать командную строку для получения информации:

mdls -name kMDItemWhereFroms <имя файла>

При использовании openкоманды такой URL заставит OS X активировать приложение по умолчанию, как если бы он активировал TextEdit для текстового файла. Для message:URL-адресов Mail.app будет запущен, чтобы показать сообщение (если оно все еще существует).

В сочетании с некоторыми AppleScript из комментариев по ссылке выше:

on open these_items 
   set first_item to item 1 of these_items 
   set full_path to quoted form of POSIX path of first_item 

   set cmd to ¬ 
      "/usr/bin/mdls -name kMDItemWhereFroms " & ¬ 
      full_path & " | grep 'http:\\|https:\\|message:' | xargs open" 
   do shell script cmd 
end open

Вставьте вышеприведенный AppleScript в Редактор сценариев и сохраните его как приложение с параметром « Только запуск» . Теперь при перетаскивании любого файла в это приложение будет открыт источник, если это применимо. Я, конечно, не эксперт по AppleScript, и вышеизложенное не делает никакой обработки ошибок, оно просто берет первый файл, когда в приложение помещается несколько файлов, и не поддерживает каталоги. Но у меня возникает идея, я думаю.

(В слеша http:\\выше являются преднамеренными, и не должны читать //Обыски скрипт для. http:, https:Или message:Другими словами, они не предназначены , чтобы быть частью http://, но вместе образуют сбежавшего обратную косую черту, чтобы избежать трубы-символ в grepкоманде .)

Арьян
источник