Create new outgoing message with applescript in Microsoft Outlook - outlook

I'm trying to create a new outgoing message with Microsoft Outlook 2011 for mac, using AppleScript.
The following example worked in 10.6.8:
tell application "Microsoft Outlook"
set newMessage to make new outgoing message with properties {subject:"Hooray for automation"}
make new recipient at newMessage with properties {email address:{name:"Jim Shank", address:"jim.shank#example.com"}}
open newMessage
end tell
On Lion I'm getting the following error:
Microsoft Outlook got an error: Can’t make class outgoing message.
Does anybody have a clue what went wrong there?
I'm using offline Outlook.

Apparently, I'm using a trial version, that has expired. With registered version this script works perfectly. Boo Outlook...I spent on looking into this a couple of hours!

tell application "Microsoft Outlook"
set newMessage to make new outgoing message with properties {subject:"Hooray for automation"}
make new recipient at newMessage with properties {email address:{name:"Jim Shank", address:"jim.shank#example.com"}}
send newMessage
end tell
This way, it will automatically send it.

Related

Select mailbox for Microsoft Outlook when using Applescript

I'm using Applescript to automatically draft and send emails in Microsoft Outlook. While everything is working as expected to send emails from my own account, I want to adjust the script to send emails from a different account that I have access to in Outlook. I've found this post, but the approach shown there generates an error for me.
https://macscripter.net/viewtopic.php?pid=185222#p185222
How can I adjust the script below to select the correct mailbox to send my email from? When I use the script below, the following error is generated when I attempt to save it.
Syntax Error
Expected class name but found identified
I've Google this error message, but haven't been able to find anything relevant to my task of changing the account the email is sent from.
set theAccount to the first exchange account whose name is "second.account#company.com"
set recipientAddress to "first.last#company.com"
set theSubject to "This is only a test"
set theContent to "<html><body><p>This is only a test.</p></body></html>"
tell application "Microsoft Outlook"
set newMessage to make new outgoing message with properties {account:theAccount, subject:theSubject, content:theContent}
tell newMessage
make new recipient at newMessage with properties {email address:{address:recipientAddress}}
end tell
save in drafts
end tell

Apple script: How to get the message id of the currently selected message in outlook app

I want to get the message id of the message currently open in outlook app during read mode in inbox on my mac using osa script.
so far I have tried this:
tell application "Microsoft Outlook"
set currentMessage to selection
set header to headers of currentMessage
end tell
And I got a response but headers do not have the message id
Mac OS Bir Sur, Apple M1
Outlook 16.46 Microsoft 365 subscription.
you should be able to:
get id of currentMessage
Works on Mojave with Outlook 16.44. (Exchange acct)
-- This works here:
tell application "Microsoft Outlook"
set currentMessage to selection
set thisID to id of currentMessage
get subject of message id thisID --> "test 1"
end tell

How to access the recipients list of an unsent Outlook message from Applescript

I'm trying to put together an Applescript (MacOS 10.15.6) that will read the recipients of a newly-composed but unsent message in Outlook (v16.40). So, to clarify, I'd:
Start a new message in Outlook
Add some recipients to the To and Cc fields
Run the Applescript and have access to the recipient information before the message is sent.
I've hit a stumbling block straight away: I can't seem to access the new message.
tell application "Microsoft Outlook"
set newMessage to get (outgoing message)
set reciplist to every recipient of newMessage
end tell
gives the syntax error
Can’t get every recipient of outgoing message.
I can't find any examples of looking at unsent and unsaved messages - is such a thing possible?

Using replay to all with Applescript and Outlook 2011

Right now I have a simple little AppleScript that will take the currently selected message and open a reply to window for the message.
I'm doing this to eliminate the default signature from the reply. For some reason Outlook 2011 does not have an option to exclude the signature on replies but using this script keeps the signature off.
Here's my script:
tell application "Microsoft Outlook"
set replyMessage to selection
set replyMessageSubj to subject of replyMessage
reply to replyMessage
end tell
tell application "Finder" to activate (every window whose name is "Re: " & replyMessageSubj)
That opens the replay window and activates it for me. Works well but I'd like to have it reply all, not just reply.
The dictionary for Outlook 2011 says:
reply to v : Create a reply message.
reply to message : The message to reply to.
[opening window boolean] : Should the reply message be opened in a window? Default is to show the window.
[reply to all boolean] : Whether to reply to all recipients of the message. Default it to reply to the sender only.
→ message : The reply message.
I'm a bit of an AppleScript novice and can't find a good example...
How do I get this to reply all?
Try:
tell application "Microsoft Outlook"
set replyMessage to selection
set replyMessageSubj to subject of replyMessage
reply to replyMessage with opening window and reply to all
end tell

Scheduling an email to send in mail (mac)

I have an email that I need to schedule to send later. I know you can schedule an apple script to fire off at a set time using iCal, but I have been unable to find one that works. It doesn't necessarily have to be done this way though. I would be grateful of a solution to this problem.
This works for me with a run script alarm in iCal on 10.6.8
tell application "Mail"
activate
set mymail to make new outgoing message at the beginning of outgoing messages with properties {subject:"Triggered"}
tell mymail
make new to recipient at beginning of to recipients with properties {address:"first#email.com, second#email.com"}
set content to "hi"
end tell
--show message window (otherwise it's hidden)
set visible of mymail to true
--bring Mail to front
activate
send mymail
end tell
I'm also getting an error like outgoing message 1 doesn’t understand the send message when trying to send an outgoing message. Referring to a message created from a script still seems to work though.
tell application "Mail"
set m to make new outgoing message with properties {subject:"subject", content:"content"}
tell m
make new to recipient at end of to recipients with properties {address:"jana#doe.com, john#doe.com"}
end tell
send m
end tell
You could also create a Calendar alarm in Automator.
I just accomplished this without Automator, using only Apple Mail:
Double-click anywhere your calendar to start creating an event.
Give the event a name. This will be the subject line of the email.
Set the date and time of the event to when you want the email to be sent.
If you want the email to be sent on a schedule, choose a repeat frequency and potential termination date.
For the alert, choose Custom....
Select email. You might be prompted to add a contact card to the Contacts app.
Choose the person to whom you want to send the email, and set the time to At Time Of Event. Press OK.
You can choose to add Notes, a URL, or attachments. I haven't tried these options, but I assume that they are carried forward in the email that is sent.

Resources