Tested and modified in MacOS 10.9 Mavericks: September 2 2014
This still works but you have to do all the steps before you can test it. Also
be aware that it is possible for the return receipt request to be seen before
the actual email, at least when testing it on myself. I've only tested it on
myself and don't know whether or not anybody else has actually used it.
I've been working on this receipts issue and I'll try to lay out what I've
done. I am now able to request receipts, reply to a request for a receipt (only
tested on sending to myself), check to see if requesting receipts is turned on
and off, and turn requesting receipts on and off.
Disclaimer: I'm not responsible if you accidentally delete already existing
email headers or have other problems with email, terminal or anything else on
your computer or in your life :-) while doing this, though of course I'll be
willing to help troubleshoot if you post problems to the list. This is my first
draft and though I've looked through it for errors, there's certainly the
possibility - the overwhelming probability! - I've made some. So if in doubt,
check things over, ask questions, and do your own research. The links where I
got most of this information are at the bottom of this email, just above my
signature. There are plenty of people on this list who will spot errors and
probably find easier ways to do this. I didn't attempt to include in-depth
instruction about terminal or applescripts. None of what is written here is
original with me.
Mac OS version: These instructions are specifically for Mountain Lion. They may
be used in earlier releases of Mac OS but there will be differences. For
instance, there have been changes in the location of applescript folders in
Mountain Lion.
Before we start, a note about copying and pasting: Be careful to get all the
content as there are apostrophes, braces, semicolons, etc. that really are a
part of the line to be copied and pasted. If you copy a line by doing
shift-down-arrow, this could result in the line being put in terminal and enter
being executed before you have a chance to check the line, so if you want to be
able to check what you've done, highlight from left to right, making sure you
include everything. I know that working with terminal can be a challenge with
voiceover; I have the benefit of a braillelite with brltty in Terminal so if
you have problems, do some research and/or ask for help on the list. Also, I
will be referring to the return/enter key as enter. Those with older Macs may
have both, but it's my understanding that all the newer keyboards now just have
return. But I don't want to have to write return/enter all the time and the
term "enter" seems to get used more though they are not identical and the key
on most Macs is now really return, so if you have both and one doesn't work,
try the other.
Step 1. Checking for headers:
Since sending receipt requests involves adding something to your email headers,
first you want to check to see whether you presently have any custom headers
and what they are. This is done with one line that you can paste into terminal
and then press enter. The line is:
defaults read com.apple.mail UserHeaders
Step 2. Enabling request receipts for the first time
Note: it is possible to just wait and do this with the applescripts in Step 3
but it may be better to do it this way the first time to ensure that there are
no problems.
A. If in Step 1 you get something like:
The domain/default pair of (com.apple.mail, UserHeaders) does not exist":
that means you don't have any custom headers. If that is the case, things are
simpler because you have nothing you have to keep from deleting. In that case,
type or paste the following line in terminal, replacing Name with your name and
email.address with your email address:
defaults write com.apple.mail UserHeaders '{"Disposition-Notification-To" =
"Name <email@address>"; }'
You shouldn't see any results from this line's entry. You can check to make
sure the Disposition-Notification-To header was added by running the line in
step 1 again. If these are the only lines you have just done in terminal, you
can easily get back up to the first entry from step 1 by arrowing up twice in
terminal. You won't hurt anything if you accidentally do the line from this
step over but you won't see any results.
But I am showing it here again for your convenience also.
defaults read com.apple.mail UserHeaders
You won't have to type or paste to turn this on and off each time as we will be
using apple scripts or other alternatives for that. Skip to step 3 if you
completed 2A successfully.
2B. If the line you entered in Terminal in step 1 gives you something that has
a line with a left brace and the beginning and a right brace at the end, it
means that you do have some custom headers which you may not want to delete in
the process of adding what you need to generate receipt requests. Here's an
example of what you might get (this is only an example; what you get will vary
according to your custom headers):
{Bcc = "[email protected]"; }
In this case you have two choices to proceed. One, which I haven't tried, would
be to edit the .plist and add in the header. You can find more about this by
following the link where I got most of this information, which will be at the
bottom of this email. However, this may have changed somewhat because I notice
that the path to the .plist given in the article does not exist on my computer.
Your second alternative would be to do a terminal command that inserts the new
header without deleting the ones that are already there. Here's how to do this.
1. Highlight the line that was the result of your terminal entry.
2. Do command-c to copy.
3. Type the following line but do not press enter yet and do not use copy and
paste to put this line in terminal because you will lose the line you just
copied).
defaults write com.apple.mail UserHeaders '
4. Without spacing, do command-v. This will copy the already-existing header
information onto the line.
5. In front of (to the left of) the closing right brace, insert the following,
replacing name with your name and email@address with your email address.
'"Disposition-Notification-To" = "Name <email@address>"; '
Here's an example of what the line might look like:
defaults write com.apple.mail UserHeaders '{Bcc = "[email protected]";
"Disposition-Notification-To" = "Heinz Tschabitscher <[email protected]>"; }'
6. You may want to do a command-a and command-c to copy this line you have just
created for two reasons. First, you can paste it into a text editor to check
for errors if you have a problem. Secondly, this line could be useful in
turning receipts on and off, which will be discussed in step 3.
7. Now press enter.
If there are no error messages, you have added the new header without deleting
the other ones.
8. If you copied the line before pressing enter, save it to a text file.
9. You can check this by typing or pasting the line from step 1 in terminal and
pressing enter and reading the results.
Alternatively, if you have trouble with all the typing, finding your place and
pasting in terminal, you might be able to do all these instructions in this
step by constructing the line in Text Edit and then copying and pasting the
whole line in terminal. But remember that you do have to get that result
message from step 1 included in your line as described. Then, as just stated,
you can check your success by running the line from step 1 again.
If I understand correctly, those who have completed these steps successfully
should be able to send receipt requests. Next, we will discuss turning receipt
requests on and off.
Step 3. Turning request-receipts on and off.
There are a couple of alternatives for turning receipts on and off. You can use
apple scripts or you can use a line pasted into terminal or placed in a simple
shell script (not the same as an apple script). Read through the alternatives
and pick the one you want to do or see if you can come up with another one.
Alternative 1: Apple scripts
First a warning: I know this works if Disposition-Notification-To is the only
header. If you have other headers, you may have to modify this to keep your
other headers from being deleted when you turn off receipts as they would of
course not be replaced again with the "turn on" script; it would only add back
the Disposition-Notification-To header. So if you have additional headers,
research this before using either of these scripts and have a .
Here are the two scripts to turn receipts n and off. You should copy them and
paste them into the applescript editor which is in /Applications/Utilities.
Replace email@address with your email address. Compile and run them to make
sure they work. If you get a syntax error check your lines; especially in the
"turn on" script, the middle second line could possibly get chopped up when
pasting. Do not remove the backslashes. I saved mine as apps. If you do this,
do not check "run startup screen". However you save them, don't check "run
only" if you ever want to be able to open and edit them again in the editor. I
copied these into ~/Library/Application Scripts/com.apple.mail though I don't
know if that is really necessary. It made sense to me to put them there.
Here is the script to turn on receipts:
tell application "Finder"
do shell script "defaults write com.apple.mail UserHeaders
'{\"Disposition-Notification-To\" = \"<email@address>\"; }'"
end tell
Here is the script to turn off receipts:
tell application "Finder"
try
set rc to do shell script "defaults delete com.apple.mail
UserHeaders"
on error
return
end try
end tell
The link I got this info from talked about giving the scripts names that would
allow you to call them with ctrl-g and ctrl-c but that didn't work for me. I
saved them as apps and for now put them in the dock. However, they could be run
in terminal with the osascript command or they could be matched in keyboard
commander with an option-key combination.
Alternative 2: Line to be pasted in terminal or shell script to be run in
terminal
A. If Disposition-Notifications-To is your only header (you did step 1 and 2A:
To turn on receipt requests, you can paste the line you used in step 2A into
terminal or you can create a shell script by:
1. opening a file in Text Edit or other (you will want to make it plain text).
2. Save the file to your user directory or somewhere in your path.
3. Type: chmod +x filename (substituting your file's name for the file and
including the path if it isn't in the top level of your user directory).
4. Run shell script by typing:
./filename (notice the dot and of course substitute your file's name) if it is
in the top level of your user directory;
the path to the folder if it is in a subdirectory;
or the name of the file if you have put it somewhere where it can be found when
you type it: /usr/bin or, if you have one, /usr/local/bin, would be examples of
this. Look for information on terminal if you want to know more about this.
To turn off receipts, you can use the following line in the ways just described:
defaults delete com.apple.mail UserHeaders
B. If you have other custom headers besides the Disposition-Notification-To
header (you did steps 1 and 2b:
To turn on receipts:
Use the line you created and entered into terminal in step 2b in the ways shown
above.
To turn off receipts:
Use the line you created in step 2B without the piece you inserted in step 2B5.
In other words, remove:
'"Disposition-Notification-To" = "Name <email@address>"; '
(where name is your name and email.address is your email.
You should now be able to request receipts and turn receipt requests on and
off. Next, we will discuss how to do a check to see whether you have receipt
requests turned on or off.
Step 4. Checking/confirming that receipt requests are turned on or off
You can't remember whether receipt requests are turned on or off! Or you are
sure you turned them off but you are getting receipts back! Or you are sure you
have receipt requests turned on but no receipts are coming back. Here's how you
can check whether receipts are on or off.
Type or paste in terminal the line you used in step 1:
defaults read com.apple.mail UserHeaders
Depending on your headers situation, the results will be as follows:
If you get something like:
The domain/default pair of (com.apple.mail, UserHeaders) does not exist":
you have no custom headers and so you know receipt requests are turned off.
If you get anything with a left brace at the beginning and a right brace at the
end, and Disposition-Notification-To is anywhere in the line, you have receipt
requests turned on.
If you get a result that does have a left brace at the beginning and a right
brace at the end but nothing about Disposition-Notification-To, some headers
are enabled but your receipt requests are turned off.
If you get an error or nothing, you have typed the command incorrectly or
something is wrong.
You can create a shell script to check this similar to what I described in step
3.
Step 5. Return receipts applescript
The "return receipts" applescript allows you to send a receipt if it is asked
for. You can download the script from:
http://hints.macworld.com/dlfiles/mail_rr_scpt.txt
This link takes you directly to the file but you will be in the file rather
than downloading it. Do a command-l and make sure voiceover says "contents
selected". Then hold down the option key and press enter while holding down the
option key. You won't hear anything different but the file should be in your
Downloads folder after you do this. Notice that it has a .txt extension. I
didn't have to run this through the apple script editor. I just pressed enter
on the filename and deleted the .txt and hit enter. Actually I renamed the file
to Return Receipts.scpt. I was asked whether I wanted to delete the .txt
extension when I pressed enter after editing the filename.
Place the script in your user directory, not in the system library:
the path is ~/Library/Application Scripts/com.apple.mail
This AppleScript is called by the mail rule we will create in the next step and
generates a simple message that says the message was received.
The AppleScript, as written, doesn't automatically send the message; it creates
the message, but the user is still required to Send it.
There was a script written that would send invisibly but I didn't do anything
with that. There was one comment from somebody who had trouble with it and
there was also a comment about an automatic receipt possibly sending a
confirmation to spam email so I'll let everybody sort that out for themselves.
6. Mail Rules
In order to respond to receipt requests, you will have to create a rule in Mail.
A. Open Mail and do command-comma to go to Preferences.
B. Do vo-space on Rules in the toolbar.
C. Do vo-space on add rule.
D. In description, type something like: read receipt requested
E. Under criteria, choose the "add headers" choice, click "add" and type:
Disposition-Notification-To in the text field.
Do vo-space on ok.
Then open the pop-up and choose the Disposition-Notification item that you just
added.
F. Choose contains.
G. Write @ (the at sign) in the criteria field for contains.
H. Do vo-space on add criteria.
I. Select subject.
J. select does not contain.
K. Type Return Receipt in the text field.
(This second criterion prevents you from getting into a never-ending loop of
requested receipts if you send an email to yourself.
L. Under Perform the following actions:
choose "run applescript" from the pop-up.
Choose the applescript you just put in ~/Library/Application
Scripts/com.apple.mail.
Do vo-space on ok.
Do not tell mail to perform action on mailboxes if asked (not exact wording).
References and further information
The first link I found was the one Teresa posted:
http://email.about.com/od/macosxmailtips/qt/et_request_recp.htm
By following a link on that website, I ended up at this website:
http://hints.macworld.com/article.php?story=20050512155856402
You will want to read thoroughly, including the comments. But keep in mind that
people in their comments are referring to Tiger and Snow Leopard so some things
may not work and some paths have definitely changed. But what I took from this
website is working for me.
Hth.
--
Cheryl
I tried and tried to turn over a new leaf.
I got crumpled wads of tear-stained paper
thrown in the trash!
Then God gave me a new heart and life:
His joy for my despairing tears!
And now, every day:
"This I call to mind,
and therefore I have hope:
The steadfast love of the Lord
never ceases;
his mercies never come to an end;
they are new every morning;
great is your faithfulness."
(Lamentations 3:21-23 ESV)
--
You received this message because you are subscribed to the Google Groups
"MacVisionaries" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/macvisionaries.
For more options, visit https://groups.google.com/d/optout.