2011-11-19 85 views

回答

0

这里的代码来做到这一点,在脚本桥接(可可):

for (MailRecipient *recp in message.recipients) { 
       MailToRecipient *theRecipient = [[[mail classForScriptingClass:@"to recipient"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:recp.address, @"address", nil]]; 
      } 
-1

草稿邮箱包含在邮件查看器中。由于邮件尚未发送,因此无法将其发送给“收件人”。但是,您可以获取包含收件人列表的邮件源。诀窍是从该文本中提取收件人。

tell application "Mail" 
set the_messages to every message in drafts mailbox 
repeat with this_message in the_messages 
    set message_content to the source of this_message 
    log message_content 
end repeat 
end tell 
+0

其实,这是可能的。 – MegaEduX

0

其实这是有可能不像早期提出的解决方案可可纯AppleScript的。以下是用于获取“收件人”收件人字段输入值的代码片段。

tell application "Mail" 
    set draftMessages to every message in drafts mailbox 
    set draftMessagesID to {} 

    # go through each draft message 
    repeat with draftMessage in draftMessages 
     set draftMessageID to id of draftMessage as string 
     copy draftMessageID to the end of draftMessagesID 
    end repeat 

    # go through the list of draft message ids and process the most recent item 
    if (count of the draftMessagesID) is greater than 1 then 
     set sortedDraftMessagesID to the reverse of my sortAlphabetically(the draftMessagesID) 
     # get only the first item, as this is the most recent 
     set lastDraftMessageID to first item of sortedDraftMessagesID as integer 
     # get the most recent draft message 
     set draftMessage to first message of drafts mailbox whose id is lastDraftMessageID 

     set toAddresees to {} 
     repeat with toRecipient in (get to recipients of draftMessage) 
      set toName to name of toRecipient 
      set toAddress to address of toRecipient 
      set toFinal to my composeNameAndAddress(toName, toAddress) 
      copy toFinal to end of toAddresees 
     end repeat 

     # now you have the input values of the TO field 
     log toAddresees 
    end if 
end tell 

#handler to compose name and address when one is missing 
on composeNameAndAddress(name, address) 
    if name is missing value then 
     return address 
    else 
     return name & space & "<" & address & ">" 
    end if 
end composeNameAndAddress 

#handler to sort a list alphabetically 
on sortAlphabetically(theList) 
    set the indexList to {} 
    set the sortedList to {} 
    repeat (the number of items in theList) times 
     set the lowItem to "" 
     repeat with i from 1 to (number of items in theList) 
      if i is not in the indexList then 
       set thisItem to item i of theList as string 
       if the lowItem is "" then 
        set the lowItem to thisItem 
        set the lowItemIndex to i 
       else if thisItem comes before the lowItem then 
        set the lowItem to thisItem 
        set the lowItemIndex to i 
       end if 
      end if 
     end repeat 
     set the end of sortedList to the lowItem 
     set the end of the indexList to the lowItemIndex 
    end repeat 
    return the sortedList 
end sortAlphabetically 

你提到,你需要一个具体的草案,对于这个剧本,我认为你可以(例如)采取草稿消息具有最高ID获取最新的草案。这就是上面的脚本使用带有通用简单排序处理程序的反向命令的功能。