How to send an email attachment with a command line
The ability to send an e-mail attachment from the Windows command line or a batch file can be very helpful in work flow automation and eliminating manual repetition. The Simple Mail Transfer Protocol's attachment implementation is complex.
Third-party utilities such as Postie can send attachments using a single command that otherwise would be a lengthy block of scripting language code. Postie has a free version for small attachments and has been widely used since 2001. Other vendors with similar products include Febooti, Codestone and NetMailBot.
Download Postie Personal Edition or Commercial Trial (WIN32) from the Infradig Systems website at infradig.com.
Extract all of the files and folders contained in the postie.zip file to a location on your Windows-based computer such as C:\Temp.
Identify an attachment file on your local hard drive that is smaller than 256 KB and note the full path to the file. For example:
Identify an SMTP server address that is accessible from your computer's Internet connection. Often it will be your Internet Service Provider's domain name appended to "smtp" and separated by a period. For example, if your ISP's domain name is "isp.com," then the SMTP server address may be:
You will often find this address in your e-mail client's account settings.
Open Notepad or another text editor on your computer.
Copy the following command template text and paste it into your text editor. Ensure that it all appears on a single line.
Replace all of the data tags in the command text, which are encased with "<>."
Save the text document with a .bat extension to a location on the local hard drive and then run the batch file. If you entered everything correctly, the email should be sent with the attachment. As an alternative, copy and paste the full command text directly into the command line utility or the start-run box in Windows and run it from either of those places.
- Ensure that the quotation marks within the command template are not removed. Remove the "<>" characters when replacing the data tags. The following is a fully populated sample command:
- C:\temp\postie\postie.exe -host:smtp.isp.com -to:firstname.lastname@example.org -from:email@example.com -s:"Attachment Test" -a:"C:\Temp\Photo.jpg" -msg:"Please find the attached file."
- The SMTP server that you use must allow e-mails to be sent from your domain name. It is always safest to use an SMTP server provided by your ISP and to use a <FROMADDRESS> that uses your ISP's domain name, to minimise the risk of message rejection.
- The free personal version of Postie allows for attachment sizes of only up to 256 KB and has other functional limitations. If you need to send larger attachments or want advanced features, purchase a commercial license for Postie or another similar utility.
- When using Notepad, change "Save as type" to "All Files" when you save the batch file for the first time, or it will get saved as a .txt file and not execute when you run it.