Qm - The Quick Mailer
Version 1.3

Copyright (c) 2000-2001 David Philips, Pyric Interactive

License & Conditions of Use

This software is released with the hopes that it will be useful but WITHOUT ANY WARRANTY, express or implied; including implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. By using this software you assume all risks and responsibilities regarding the results and/or performance of the software. The author is not liable for any damages including, but not limited to, loss of revenue or profit, lost or damaged data or other. The author is not liable for claims made by a third party.

This version of Qm may be used for commercial and non-commercial purposes. You are free to distribute Qm in it's original form. You may not charge for copies of the software or distribute the software or documentation with other products without the written consent of the author.

Using Qm indicates your agreement to these terms and conditions.


Qm is an Internet e-mail client that uses the SMTP protocol for sending e-mail. To do this, Qm makes a TCP connection to the SMTP port (25 by default) of the specified mail server. While there are many programs with this functionality, the majority of these are complex, bulky software packages that include e-mail and news group readers, calenders, and more. Qm is an extremely small, fast program that accomplishes one task, sending e-mail messages, and does it well.

System Requirements
Qm runs on Windows 95, Windows 98, Windows ME, Windows NT 4.0, Windows 2000, and Windows XP computers with Windows Sockets (winsock). To send e-mail Qm needs a network connection and configured mail server. Note that most SMTP servers will not relay mail from just any old host, so you'll need to find one that works for you. Your ISP will usually have a mail server for customers to use.

Qm Features

Installing Qm
Qm is most commonly distributed in a ZIP archive file. Use an archiving program (such as WinZip or PKZip) to extract the files to any directory on your computer. C:\Program Files\Qm sounds like a good choice doesn't it?

Uninstalling Qm
To remove Qm from your computer, simply delete the qm.exe, qm.ini, and qm.txt files. If you've used logging, there may be a qm.log file as well, delete that too. That's it.

Quick Start
These steps are all that are required to start sending mail with Qm:

  1. Install Qm
  2. Start Qm from the directory in which it was installed
  3. The first time Qm is run, it will present the Server Configuration dialog
  4. Enter the host name or ip address of the mail server you wish to use in the Server field
  5. If you don't know your mail server's port leave the default value of 25
  6. If your mail server requires authentication select the approiate authentication method from the Type drop-down and enter your user name.
  7. Press OK to save the Server Configuration settings
  8. Done! You can now compose and send e-mail messages with Qm

Qm Main Window

The main window is where you'll spend most of your time in Qm. It's here that you'll choose recipients, attach files, and compose your e-mail message. Qm's main window contains serveral text fields:

From:The e-mail address of the message sender. For example, jsmith@domain.com. Many e-mail clients also display a friendly name, it is possible to specify both the friendly name and e-mail address using this field as follows: John Smith <jsmith@domain.com>
To:The e-mail address of the recipient. Multiple recipients may be entered by separating each address with a comma or semi-colon. This field can be populated by using the mailto: command line argument.
Subject:The subject of the e-mail. This field can be populated by using ?subject in conjunction with the mailto: command line argument.
Attached:The full system path for a file to be attached to the e-mail. Multiple files may be entered by separating each file path with a comma or semi-colon.
BodyThe body of the e-mail message.

Qm Menu Options

The following options are accessible from Qm's primary menu:

ReadLaunches the Read File selection dialog. After selecting a text file and pressing Open, the file's contents will be read into the message body. (Shortcut: Ctrl+R)
AttachLaunches the Attach File selection dialog. After selecting a file and pressing Open, the file's path will be entered into the Attached: field. (Shortcut: Ctrl+H)
SendSends the e-mail message. (Shortcut: Ctrl+Enter)
ExitExits Qm. (Shortcut: Esc)
Word WrapToggles whether lines in the message body are wrapped at the edge of the window.
FontLaunches the Font selection dialog. Qm will show message body text in the selected font (e-mails are sent as plain text with no font information).
PreferencesLaunches the Qm Preferences dialog.
AboutDisplays Qm version and copyright information.

Toolbar Buttons

The Qm toolbar provides another way of accessing the most commonly used menu options. Qm has toolbar buttons for the Send and Attach functions.

Qm Preferences

The Qm Preferences dialog allows you to customize the program's behavior. The preferences fall under three categories: Sender Information, Server Configuration, and Mailer Options. Except for the Server Configuration all preferences are optional.

Sender Information

The following fields can be used to specify default sender information.

Name:Your name. If provided Qm will automatically populate the Main Window's From: field with this friendly name.
E-Mail:Your e-mail address. If provided Qm will automatically populate the Main Window's From: field with this address.

Server Configuration

These fields provide Qm with necessary information about the mail server used to send e-mail.

Outgoing Mail Server
Server:The host name or IP address of your mail server. (e.g. mail.myisp.net)
Port:The port number on which the SMTP server resides. The default is 25.
Type:The type of authentication Qm will use when sending e-mail:
  • No Authentication - Qm will not attempt to authenticate with the mail server.
  • POP Authentication - Qm will connect to the mail server's POP port (110), login and immediately logout before sending e-mail via SMTP. Use this method if your ISP requires you to check mail before sending.
  • SMTP Auth Login - Qm will attempt to use the extended SMTP Auth feature supported by some mail servers for authentication.
  • User:Your mail server user name. If provided, Qm will prompt only for your password when authenticating before sending mail. Leave blank to be prompted for both your user name and password.

    Mailer Options

    These options are toggled on and off using the checkboxes.

    Copy message to sender addressSends a copy of the e-mail to the sender's address. The sender is not listed as a recipient of the message. This provides a record of the e-mail as Qm does not save sent messages.
    Enable loggingEnables logging of the SMTP transaction.
    Quit after sendingQm automatically exits after succesfully sending e-mail.

    Technical Notes

    Command Line Arguments

    Qm accepts several command line arguments to allow integration with Web browsers and the Windows Explorer shell.

    For browser integration, Qm accepts the recipient and subject of an e-mail message from the command line. Many browsers allow integration with e-mail clients for HTTP mailto: links. For example, the following command will start Qm and populate the To: filed with the address jsmith@domain.com:

    qm.exe mailto:jsmith@domain.com
    It's possible to specify the subject as well. To add a subject of "A Quick Note" we'd use the following command:
    qm.exe mailto:jsmith@domain.com?subject=A Quick Note

    Qm's integration with Windows Explorer is especially useful for attaching files. By adding Qm to the "Send To" context menu, it's possible to launch Qm will the file's path in the Attached field. Qm accomplishes this by accepting the file name from the command line. The following command will populate the Qm's Attached: field with the path C:\My Documents\report.doc:

    qm.exe "C:\My Documents\report.doc"

    Setting Up Qm To Handle Web Browser Mailto: Links

    For Internet Explorer 5.5 and greater:
    Newer versions of Internet Explorer have a configuration dialog that allows you to choose programs from a drop down list. Before you can select Qm for sending Internet mail, you must add it to the list.

    1. The registry file qm.reg will add Qm to the list of e-mail clients in Internet Explorer. It assumes Qm resides in C:\Program Files\Qm. To make it work with your installation of Qm, save the file to your computer, then open it in Notepad (or any text editor) and change the paths listed under the following keys to point to Qm on your machine.

      [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\qm.exe]



    2. To import the file into the Registry simply double-click on it.

    3. Once you have added Qm to the list of Clients in the registry, start Internet Explorer and select 'Internet Options' from the 'Tools' menu. Under the 'Programs' tab select Qm from the E-mail drop-down menu and click 'OK'. Clicking mailto: links in Internet Explorer should now launch Qm with the recipient address filled in.

    For other browsers using Windows 95, 98, or Me:

    1. Double-click the "My Computer" icon on the desktop
    2. Select "Folder options" from the "View" menu and click the "File types" tab
    3. Goto "URL:mailto protocol" and highlight it and click "Edit"
    4. Highlight "Open" under "Actions" and choose "Edit"
    5. "Browse" to Qm.exe and select it

    Version History

    Version 1.3
    * Added ability to send multiple file attachments
    * Added ability to authenticate via SMTP AUTH Login method (thanks to Larry
    * Improved SMTP transaction to include a timeout when waiting for a server
    Version 1.2.1
    * Added fonts for message window
    * Changed command line handling to allow Qm to work with Explorer SendTo 
      command (thanks to Vadim Yarkin)
    * Fixed stack fault on exit in Windows 95/98/ME
    Version 1.2
    * Improved error checking and handling for SMTP transaction
    * Added support for Windows XP control styles
    * Modified preferences dialog to make most commonly used options more easily
      accessible (thanks to David Han)
    * Added option to wrap text in message body to fit window (thanks to Zdenek 
    * Fixed memory exception that sometimes occurred after send
    * Qm now remembers if it is maximized when closed
    * Removed US-ASCII charset specification from MIME header (thanks to David Han)
    * Encoded attachment contents are no longer shown in the log file (thanks to 
      David Han)
    * Qm is now statically linked to a minimal C runtime rather than rely on 
    Version 1.1
    * Added attachment support (currently limited to 1 attachment per message)
    * Qm can now be resized, window size is remembered
    * Added toolbar for Send, Attach buttons
    * Added drag and drop capability for file attachments
    * Added option to provide sender's name (thanks to David Han)
    * Removed status bar prompts for the e-mail fields, status bar is now used
      only for status messages and menu prompts
    * Split preferences dialog into Server Configuration and Mailer Options tabs
    Version 1.05
    * Added ability to read text file into message body
    * Handle Use Authentication for blank user name by prompting for both user and
      password before send (thanks to Jay Roos)
    * Added status bar tips/prompts for menu items
    * Qm can now send messages larger than 1 KB
    * Pressing Tab while in Message Body field now enters a tab into message
    * Added ability to traverse fields backwards using Shift+Tab
    * Ctrl+A now selects all text in the current field
    Version 1.04
    * Added '<>' around addresses as some MTAs require it (thanks to Barton Hodges)
    * Added option to send copy of message to sender address (thanks to Zdenek 
    * From address field now scrolls to allow more recipients (currently limited 
      to 200 characters)
    * Qm now remembers its last window positon
    * Changed Send shortcut to Ctrl+Enter to allow Ctrl+X to perform normal Windows
      action of cutting selected text
    * Fixed problem with date formating of positive GMT offsets
    Version 1.03
    * Added transaction logging capability
    * Moved configuration from the registry to local INI file
    * New icon and other minor aesthetic improvements
    Version 1.02
    * Added SMTP/POP Authentication
    * Removed Ln/Col position indicator; excessive on an app like this
    * Fixed a minor date formatting error; "1 Aug" is now "01 Aug"
    Version 1.01
    * Fixed bug where colons in the first line of message body were interpreted by 
      receiving client as part of message header.
    * Added Date information to message header
    * Support "?subject=" for mailto links
    Version 1.0
    * Configuration via Windows registry (\\HKEY_LOCAL_MACHINE\SOFTWARE\Qm):
      - SMTP server and port
      - default from address
      - quit after sending
    * Support for multiple recipients
    * Accept recipient address on command line (allows integration with browser)
    Version 0.9
    * Initial limited release