How to attach files using mimemail (Getting 0kb file)
I usually do mine I little different from you, I add the attachment in hook_submit then pass it as a param to hook_mail, but even then some of our variables differ. here is an example from a working solution I have implemented, but changing to your text. I also added in the headers, maybe they arent necessary because I use it when dealing with jpeg file types.

function tellafriend_form_submit($form, &amp;$form_state) { ...
    $attachment = array(
      'uri' =&gt; $filepath,
      'filename' =&gt; 'counciltax.txt',
      'filemime' =&gt; 'text/plain',
    );
    // Add attachments      
    $params = array(
      'attachments' =&gt; $attachment,
      'file' =&gt; file_create_url($attachment['uri']),
    );

    drupal_mail('tellafriend', 'notify', $email, language_default()), $params);
}

function tellafriend_mail($key, &amp;$message, $params) {
  $message['headers']['MIME-Version'] = '1.0';
  $message['headers']['Content-Type'] = 'multipart/mixed;';
  $message['subject'] = t('Your friend thought you might like this site'); 
  $message['body'][] =t("Hello,\nYour friend thought you might like this site.  Please click the link below to visit.\n\n!link", array('!link' =&gt; $base_url));
  $message['params']['attachments'][] = $params['attachments'];  
}