2

I want to create an apple script that will forward a flagged email to x@mail.asana.com

I have tried this script:

on run

 tell application "Mail"
    repeat with _acct in imap accounts
        --Look For Flagged Messages in the INBOX
        set _acct_name to name of _acct
        set _inbox to _acct's mailbox "INBOX"

        set _msgs_to_capture to (a reference to ¬
            (every message of _inbox ¬
                whose flagged status is true))

        repeat with eachMessage in _msgs_to_capture
            set theStart to missing value
            set theDue to missing value
            set theOmniTask to missing value

            set theTitle to the subject of eachMessage
            set theNotes to the content of eachMessage

            set theCombinedBody to "message://%3c" & message id of eachMessage & "%3e" & return & return & theNotes

            tell application "OmniFocus"
                tell default document
                    set newTaskProps to {name:theTitle}
                    if theStart is not missing value then set newTaskProps to newTaskProps & {start date:theStart}
                    if theDue is not missing value then set newTaskProps to newTaskProps & {due date:theDue}
                    if theCombinedBody is not missing value then set newTaskProps to newTaskProps & {note:theCombinedBody}

                    set newTask to make new inbox task with properties newTaskProps
                end tell
            end tell

            set flagged status of eachMessage to false

        end repeat

    end repeat
end tell

end run

However, this script opens OmniFocus instead of just sending an email.

How would I change this script or start with a new one so that it will automatically forward a flagged email to x@mail.asana.com?

1

Here is some code, with no references to your OmniFocus application, that forwards all flagged messages to a set address. Adjust to your liking....

Works like a charm on my Snow Leopard macbook.

set toAddress to "userx@mail.asana.com"
set toName to "User X"

tell application "Mail"
    repeat with _acct in imap accounts
        --Look For Flagged Messages in the INBOX
        set _acct_name to name of _acct
        set _inbox to _acct's mailbox "INBOX"
        set _msgs_to_capture to (a reference to ¬
            (every message of _inbox ¬
                whose flagged status is true))

        repeat with _msg in _msgs_to_capture
            set _fwdmsg to forward _msg with opening window

            tell _fwdmsg
                make new to recipient at end of ¬
                    to recipients with properties {name:toName, address:toAddress}
            end tell

            activate

            send _fwdmsg
        end repeat
    end repeat
end tell 
| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .