Reply to Apple Mail Message
Summary: Creates a window in Mailsmith to reply to the current Apple Mail message.
Requires: Mailsmith 1.5, Apple Mail (tested with 10.2.3)
Last Modified: 2019-10-02
Description
I use Apple Mail for my mailing list mail, since it handles large volumes of mail better than Mailsmith. However, Apple Mail’s mail composition interface is terrible, so I wrote this script to let me do my replies in Mailsmith.
Note that if the script addresses the message wrong, you can look in the message’s notes field to find the headers from the original Apple Mail message.
You can run the script from either Mailsmith or Apple Mail. You’ll want to adjust the part of the script that sets the sending account and signature.
Installation Instructions · Download in Compiled Format · Download in Text Format
Script
tell
application
"Mail"
set
theMessages
to
the
selection
set
m
to
item
1
of
theMessages
set
theHeaders
to
m's
headers
set
theDate
to
m's
date sent
set
theSender
to
m's
sender
set
theSubject
to
m's
subject
set
theBody
to
m's
content
set
theTo
to
address
of
m's
last
to recipient
end
tell
tell
application
"Mailsmith"
activate
set
theAttribution
to
"On " &
theDate & " " &
theSender & " wrote: " &
return &
return
if
theSubject
does not
start with
"Re:"
then
set
theSubject
to
"Re: " &
theSubject
end
if
make
new
message window
with properties
{
subject:
theSubject,
contents:
theBody,
sending account:"C-Command",
signature:"C-Command"}
make
new
cc_recipient
at
end
of
message window
1
with properties
{
address
:
theSender}
make
new
to_recipient
at
end
of
message window
1
with properties
{
address
:
theTo}
tell
text
of
message window
1
replace
(
ASCII character
10)
using
return
options
{
starting at top:
true
}
increment quote level
quote string
"> "
end
tell
set
text
of
message window
1
to
theAttribution & (
text
of
message window
1)
set
text
2
of
message window
1
to
theHeaders
-- stash headers in Notes field
-- doesn't work; seems to be a bug in Mailsmith
tell
text
2
of
message window
1
replace
(
ASCII character
10)
using
return
options
{
starting at top:
true
}
end
tell
-- force refresh to avoid UI glitch
set
message window
1's
show tool bar
to
false
set
message window
1's
show tool bar
to
true
-- scroll to top
select
insertion point
before
first
character
of
message window
1
end
tell