applecript - скопировать адрес электронной почты отправителя в номера

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

заранее спасибо:)

property workFlowPath : quoted form of ("/Users/pl 1/Library/Application Scripts/com.apple.mail/accepted.workflow") --CHANGE THIS TO YOUR FULL WORKFLOW FILE PATH example  "/Users/pl 1/Library/Application Scripts/com.apple.mail/accepted.workflow"


using terms from application "Mail"
 on perform mail action with messages theMessages for rule theRule
  repeat with eachMessage in theMessages
   (*Get the email Subject *)
   
   set input_Argument to subject of eachMessage
   (*Run subroutine for workflow *)
   my runAutomator(input_Argument)
  end repeat
 end perform mail action with messages
end using terms from

(*Workflow  Subroutine *)
on runAutomator(input_Argument)
 
 (*Path to workflow *)
 
 
 (*Setup and Run the unix command *)
 set command to "/usr/bin/automator   -i " & quoted form of input_Argument & space & workFlowPath
 do shell script command
end runAutomator
on run {input, parameters}
 
 tell application "Numbers"
  tell application "Finder"
   set theFile to POSIX file “/Users/pl 1/Google Drive/Publication Submission Tracker2.numbers"
   open theFile
  end tell
  
 end tell
 
 return input
end run



________pause for 5 seconds______



tell application "Mail"
 reopen
 activate
 set theSenderList to {}
 set theMessages to the first message of message viewer 0
 repeat with aMessage in theMessages
  set oneAddress to extract address from sender of aMessage
  set end of theSenderList to oneAddress
 end repeat
 set the clipboard to (theSenderList as string)
end tell
return
end run

________pause for 5 seconds______



tell application "Numbers"
 reopen
 activate
 tell application "System Events" to tell process "Numbers"
  set currentCell to "e2"
  keystroke "v" using {command down}
 end tell
end tell

end run

1 ответ

Решение

Лучше не использовать сценарии пользовательского интерфейса здесь. Вы хотите настроить это как триггер в mail.app. Ваш сценарий может получить адрес электронной почты отправителя, а затем программно добавить его в первую пустую ячейку подряд. Вот скрипт для начала:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule

        tell application id "com.apple.iWork.Numbers"
            activate
            -- can also tell Numbers to open a specific document
        end tell

        tell application "Mail"
            repeat with eachMessage in theMessages
                set fromAddress to extract address from reply to of eachMessage

                tell application id "com.apple.iWork.Numbers"
                    tell document 1
                        tell the active sheet
                            tell table 1
                                tell column "E" -- change to preferred column
                                    -- find the last empty row in this column
                                    set r to (address of row of first cell whose value is missing value)
                                    set value of cell r to fromAddress
                                    set r to r + 1
                                end tell
                            end tell
                        end tell
                    end tell
                end tell

            end repeat
        end tell
    end perform mail action with messages
end using terms from

Редактировать: я отредактировал скрипт для проверки следующей ячейки с "отсутствующим значением" (вместо значения ячейки> 0), чтобы он мог обрабатывать числа и даты, например: установить значение ячейки r на дату "12/5/15"

Другие вопросы по тегам