I have now got to the bottom of the problem. The code was OK.
The issue was that the document that I wanted to attach to the email had to be on the same server as I was running the script on. I can live with that, but it would be more user friendly if it could be on any server! Any suggestions as to how that would be achieved?