in reply to Re^4: using Mime::Lite
in thread using Mime::Lite

Without having tested it I see a few possibilities:

1) It probably should be 'Content-disposition' instead of 'disposition', see MIME::Lite

2) You may have a "defective" mail reader, see the following comment in MIME::Lite:

Note: there are reports of brain-dead MUAs out there that do the wrong thing if you provide the content-disposition. If your attachments keep showing up inline or vice-versa, try scrubbing this attribute.

3) Maybe your text is in utf8 format and you need to give that information with the 'Content-transfer-encoding' MIME header

Generally you could compare a normal email with attachement to an email you received from your script and check what is different. All self-respecting mail readers allow you to view an email as unrendered source if you ask nicely ;-)