I just call Blat when I want to send e-mail messages from a vb app. You can pass it both messages and attachments, and you can pass usernames and passwords as well, so you can send mail through ESMTP enabled servers.