2012-07-18 3 views
0

나는 보였지만 보였지만이 겉으로보기에는 간단한 질문에 대한 답을 찾을 수 없었습니다 (저는 AppleScript를 처음 사용합니다). 기본적으로 규칙을 설정하고 메일을 "Foo"사서함 (IMAP 계정의 사서함)으로 이동시키는 스크립트가 필요합니다. 여기에 내가 가진 무엇 :이 라인의 다양한 조합을 시도했습니다메일의 규칙이있는 AppleScript로 메일 이동

tell application "Mail" 
set newRule to make new rule at end of rules with properties {name:"Foo Internal", enabled:true} 
tell newRule 
    make new rule condition at end of rule conditions with properties {rule type:any recipient, expression:"[email protected]", qualifier:does contain value} 
    set move message to mailbox "Foo" 
end tell 
end tell 

...

set move message to mailbox "Foo" 

을 ... 등등의 IMAP 계정을 지정하는 변수로 설정, 등. 나는 프로그래머가 아니지만이 규칙을 스크립트로 작성하여 내 일에 항상 설정 규칙을 적용하려고합니다. 어떤 도움이 필요합니까?

답변

0

스크립트 때문에 두 가지를 실패

실제로 "스틱"하는 move message 활동에 필요한 true로 규칙의 should move message 속성을 설정 생략
  1. ;
  2. 대상 사서함의 개체 계층 구조를 올바르게 정의하지 못했습니다. accountapplication 컨텍스트가 필요합니다.이 규칙은 Mail이 아닌 규칙을 대상으로 tell 블록 안에 있습니다.

다음 코드 :

tell application "Mail" 
    set newRule to make new rule at end of rules with properties {name:"Foo Internal", enabled:true, should move message:true} 
    tell newRule 
     make new rule condition at end of rule conditions with properties {rule type:any recipient, expression:"[email protected]", qualifier:does contain value} 
     set move message to (mailbox "Foo" of account "Bar" of application "Mail") 
    end tell 
end tell 

는 (OS X 10.7.4의 같은 주) 메일에 5.2을 작동합니다.

+0

의견에 감사드립니다. 스크립트에서이 코드를 사용할 때 스크립트가 실행될 때 오류가 표시되지 않지만 규칙에 "사서함이 선택되지 않았습니다."라는 메시지가 계속 표시됩니다. 어떤 생각? –

+0

나는 사서함과 계정이 모두 존재하고 올바르게 입력되었는지 확인했다고 가정합니다. 또한 스크립트를 실행하기 전에 기존 "Foo internal"규칙을 삭제하십시오. 마지막으로 - 이전에 요청 했어야합니다. - Mail 및 OS X의 어떤 버전을 실행하고 있습니까? (위의 내용은 Mail 5.2/OS X 10.7.4에서 올바르게 실행됩니다)? – kopischke

+0

감사합니다. 예, 사서함이 올바른 계정에 있고 맞춤법이 올바른지 확인했습니다. 또한 스크립트를 다시 실행하기 전에 항상 "Foo Internal"규칙을 제거합니다. 10.7.4에서 Mail 5.2를 실행 중입니다. 다른 아이디어? 클라이언트 이름을 기반으로 사서함을 만들고 규칙을 설정하는이 스크립트를 끝내기에 가까운 * 마지막 *입니다.이 마지막 비트를 작동 시키면됩니다. 이 규칙 작성 부분 만 별도로 테스트하기 때문에 다른 규칙과 충돌 할 가능성은 없습니다. 도와 주셔서 정말 고맙습니다. –