Turbo-Mailer logo

Mass E-Mailer and Email List Processor

Turbo-Mailer :: Documentation



Installation and usage of Turbo-Mailer is mostly self-explaining.

After running the installer and starting up Turbo-Mailer, the example address file example_addresses.txt is already pre-loaded into the To: Address List of the Bulk Mailer Page, which is the main GUI portion of Turbo-Mailer.

The email List Processor Page is the second part of Turbo-Mailer. Some example address lists are already set up in the List Processor after installation.

Note: Turbo-Mailer can be controlled by command line (batch runs)


1. Bulk Mailer

The Mailer pane in TurboMailer lets you edit the SMTP configuration, the mail subject & text body the To: address list (recipients) and some important options. As a first test you may delete the initiall dummy/test email addresses from the recipients list and insert some of your own email addresses, where you would like to send the first test email to.

Quick-Start Tutorial : The First Mailing

  1. In the Mailer page set up the SMTP-Server and From email address fields according to your email account. If you don't know what is meant, please check again the documents you received with your email account from your internet service provider (ISP)
  2. Today most SMTP mail servers need a 'login'. In that case enter the SMTP user and SMTP password into the appropriate fields.  If your SMTP server allows only a limited number of mails to be sent on one SMTP connection, use the Mails/Block setting below the Send button.
  3. Optionally fill out the Reply Addr field if replies of recipients should go to another email address than "From".
  4. Paste, drag-drop or load the text/HTML message body into the mail text field and enter a mail subject
  5. For HTML Messages check the HTML-Checkbox if not already auto-checked
  6. Add some test email addresses to the Recipients List or paste them from clipboard (Excel-Tables,..) with the paste toolbar-button
  7. Hit the Send button !
  8. Go to the List Processor and Add or drag-drop the created log files  to the User Lists:
    processed_YYYYMMDD_hhmmss.log in the directory of the list file or in the Turbo-Mailer directory + optionally refused_YYYYMMDD_hhmmss.log if some emails are immediately refused by the SMTP server)
    In case of partial transmissions the transmitted addresses are automatically subtracted from the transmit list (TRANSACCU.txt). You could also subtract partial log list files with the - (MINUS) operator from any list in the List Processor

User Interface / Mailer Page

SMTP Server

The address of your SMTP server (and optional port).
Examples.:  smtp.mydomain.com   ,   smtp.my.org:2525

All known SMTP servers are supported. Most SMTP servers from ISPs need a login authentication with user and password. Some SMTP servers require to reconnect after a certain number of mails. In that case set the Mails/Block property below the Send button for block-by-block transmission.

From Address

Format :   name@server.dom  
        or :  "Display User Name" <user_name@server.dom>

SMTP user / SMTP password   (optional)

Your login information for your SMTP server. Leave these fields empty if your (intranet) SMTP server doesn't need/support login.

Reply Address (optional)

Enter a email address where recipients should replay to (instead of "From Address"). Leave empty if your "From Address" is ok for replying to it.

Auto-Dial intern

Check this option and select a RAS Network for internet dial-up, in case you want Turbo-Mailer to auto-dial and close the RAS automatically after email transmissions are complete.

TO: Address List  /  Open File / Save / Add / Delete

This list area displays the current target address list (recipients of your email message). This list can also contain additional personalization columns which can be referenced with %1%, %2% in your mail text/html or subject, or with %-1%, %-2%.. to even inserted un-escaped HTML snippets from such columns. See also Address list line format.
A new address list ( simple list with one address per line / table / CSV file / TAB CSV file ) can be loaded to this list area by pressing the "Open File" button or "Menu/File/Open address list" or by file-drag-drop or by pressing the "<<TO-LIST" button in the List Processor Page)
You can also copy&paste a list or table from Excel using the Windows clipboard. 
The TO: list contents are permanent throughout shutdown & re-opening of Turbo-Mailer.

Send ..

Press this button to start sending out the messages after a confirmation.

BCC Bulk

Activate this checkbox in order to enable the BCC Bulking.
BCC Bulking: Many email address are targeted with one SMTP email transfer using the blind-carbon-copy method. This reduces network traffic to the SMTP server (but not behind that server). Messages with personalization variables (%N%) are never BCC bulked.
In the BCC Bulking options dialog you can set the common "TO:" display name, the "Maximum number of BCC addresses per email transfer". You can also hide the BCC address list completely from the mail header.

Mails / Block

Activate this checkbox and set a maximum number of mails (N) per block, if your SMTP server doesn't like too much email transfers to be sent during one SMTP connection. Thus TurboMailer establishes a fresh connection to the SMTP server each N mails. This option can be mixed with Multi-threaded (parallel) SMTP.

Max Threads

Activate this checkbox and set a maximum number of parallel connections in order to optimize transmission speed. This option exploits the available bandwidth most efficiently and is especially helpful, when email addresses are checked live by an SMTP server ( which slows down simple serial processing dramatically). Multiple SMTP connections are possible on most SMTP servers today.

HTML Message

Check this checkbox if you want to transmit HTML email code. 
Note: You can use the "Edit HTML" button for editing your HTML mail using a WYSIWYG HTML editor.
Note: You can configure a non-default HTML editor in Menu/Config/Settings. Installing Mozilla/Netscape is recommended, when you don't have another professional HTML editor installed on your computer.

Subject / Text Body

Enter your email message here. Or load it from a .eml / .txt / .html file. Or drag-drop a file to this area.

Attachments / + / -

Add attachment file using the + and - Buttons. 
Note: Embedded HTML images (local URL's) are automatically attached to the email. You don't need to add them explicitly as attachment.

Edit HTML / Refresh

Edit your HTML mail message with an WYSIWYG HTML editor. 

Press the "Refresh" button for importing a HTML mail text repeatedly after changing and saving it in your HTML editor. The "Refresh" button can only be used after a first "Edit HTML" cycle.

Note: You can configure a non-default HTML editor in Menu/Config/Settings. Installing seamonkey/Mozilla or "Kompozer" is recommended, when you don't have another professional HTML editor already installed on your computer.


Press this button in order to preview your HTML or text email message. In case of personalization columns: The preview is rendered using the first email address of your current TO: List


Email Address Format

The email address format throughout the TurboMailer application is ::

name@server.dom   or  "Display Name" <name@server.dom>

Address List & Table format

An address list file or table (e.g. copy & paste from Excel) for use in Turbo-Mailer contains one email address per line and optionally additional personalization columns.

Format Examples & Explanation

  • Simple example address list:
    # this comment has no effect (this not an email address)
  • More complex address list file / table example with personalization columns:
    # this comment has no effect (this not an email address)
    "Nice Name1" <name1@domain1.dom>; Nice Name1; Personal Message 1 for you; personal_code123_1
    "Nice Name2" <name2@domain1.dom>; Nice Name2; Personal Message 2 for you; personal_code123_2
    "Nice Name3" <name3@domain1.dom>; Nice Name3; Personal Message 3 for you; personal_code123_3
    "Nice Name4" <name4@domain1.dom>; Nice Name4; Personal Message 4 for you; personal_code123_4
  • A '#' character starts a comment line => no effect
  • Each other line / row should contain a valid email address as first element. Format as described above in Email Address Format; Plus optional personalization column data as described next ...
  • After the email address additional personalization/code columns can be added - in files: separated by TAB character (TabSV) or by the ';' semicolon character (CSV).
    Those extra columns can be referenced from your mail message by %0% (email address itself), %1% (2nd column), %2% (3rd column), %3% ...; or by %-1%, %-2%.. (negative column number) to even inserted un-escaped HTML snippets from such columns. 
    You can copy&paste a table from Excel through the Windows clipboard to the ACCU or to the To: address list. Use the paste toolbar button or Ctrl-V
  • Turbo-Mailer log files (successful and refused email addresses) are themselves address list files according this format.

Mail Text / Subject / Attachment Personalization

The text of additional personalization fields (columns) in an adress list files can be rendered into the mail text or subject or attachment filenames - in order to "personalize" the mail.
The column variables are like: %0% (=email address itself), %1% (2nd column), %2% (3rd column), %3% ... 
Columns which are not present in the list/table end up as empty string in the message. 
HTML Mail: Column numbers referenced with a minus sign in front end up as raw HTML code insertion (HTML/XML format escaping bypassed).

Example of a email subject and text with variables for personalization:

Subject: Personal Newsletter Weatherforecast for %1%

Hello %1%,
nice weather today.
Today's personal message for you is: %2%
Regards, Dr. Weatherman
PS: this mail was sent to %0% - newletter ref = %-3%.
(Note: the last negative variable %-3% would insert plain HTML snippets in HTML mails without escaping HTML-characters; No difference to %3% in text mode mails.)

The resulting email for this example and address list below (first address) will be:

Subject: Personal Newsletter Weatherforecast for %1%

Hello Mister A,
nice weather today.
Today's personal message for you is: abc
Regards, Dr. Weatherman
PS: this mail was sent to aa@bb - newletter ref = personal_code123_1.

Example address/personalization list file for this message:

#Example address list (CSV file)
aa@bb; Mister A; abc; personal_code123_1
cc@dd; Mister B; def; personal_code123_2

Or copy&paste a table like this via the Clipboard from Excel:

  • In Excel press Ctrl-A to select all lines; and press Ctrl-C to copy
  • Click into TurboMailer's To: Address List (Recipients) and press Ctrl-V for pasting;
    (Or press the Paste address list button in the toolbar)

Attachment File Personalization

Attachment files can be personalized by adding an attachment file name like personal-attachment-%3%.gif .  The filename part %3% is then replaced by the same scheme as with text or subject (4th table column in this example).


HTML Mail transfer is switched on by the checkbox "HTML Mail" in the Mailer main window.

HTML Mail can be edited in code view mode or in WYSIWYG (what you see is what you get) view mode : Checkbox: HTML View.

By default a auto-generated plain text version of a HTML mail is transmitted together with the HTML format - consistent with MIME standards. This setting can be changed in Menu/Config/AppSettings/HTML_Mail

How to set a manually edited plain text version for HTML Mails

A manually edited plain text version for a HTML Mail can be set - overriding auto-generation from the HTML version. This can be done by putting the plain test version into a special HTML comment "MIME_PLAINTEXT" somewhere inside the HTML code of the message - like this:

<title>A HTML Mail with manually edited plain text version</title>
<p>This is a HTML mail.</p>
<img src="icon.png">
<p>Thanks for reading.</p>
This is a manually edited plain text version of this HTML mail.

Thanks for reading.


Embedding Images in HTML Email

Embedding images in HTML emails is easy: Turbo-Mailer embeds all local images in your HTML message (image links to local files on your computer) directly into the email as internal attachment automatically when the email is sent. Image links to images on a server (<IMG SRC="http://...">) are sent unaltered. Best test for correct results with some of your own test email addresses and email viewers (sophisticated HTML is displayed differently in different email readers).

Generating a new HTML mail from scratch:

  • New Mail: Press the New Mail tool bar button or select Menu/File/New Mail.
  • Select HTML Mail: Check the HTML Mail checkbox above the "Subject" Field in order to tag the message as HTML Mail.
  • Use internal HTML Viewer/Editor: Check the HTML View checkbox and hit the Edit button next to HTML View in order to get additional controls for editing HTML directly inside TurboMailer.

    or / and :
  • Use an external HTML editor): Press the "Edit HTML" button on bottom-right of Turbo-Mailer (or Menu/View/HTML Editor) for editing the current message body in a WYSIWYG HTML Editor. You are asked to first save your (empty) message in a file. Its recommended to do this: Thus your HTML code has a definite home folder on your hard disk and you can insert local embedded images with relative paths consistently.

    The HTML editor can be configured in Menu/Config/Settings. Mozilla, Netscape, Dreamweaver and Frontpage are found automatically by Turbo-Mailer and offered in a drop-down list. The default HTML editor is the built-in editor of Internet Explorer (IE; version >= 5.5 ) - which is not recommended. Installing Mozilla or Netscape is recommended, when you don't have another professional HTML editor installed on your computer.
  • Edit: Just edit your HTML template file locally with your configured HTML editor. Use simple relative or absolute file paths to your local images for embedding those images to the email. 
  • Preview: Press the "Preview" Button:  on bottom-right of Turbo-Mailer (or use Menu/View/Preview) in order to check your HTML message.
  • Auto-Embedding: All locally linked images are embedded on-the-fly by Turbo-Mailer when the emails are sent out. Best try for correct results with some of your own test addresses. When a local image is not found during transmission you'll get an error message and transmission does not take place.
  • Non-Local Images : URLs of absolute web linked images on a server ("http(s)://...") are left unchanged. Such images are not embedded.
    Note: It is recommended to keep big images and attachment files on a web server in order to reduce bandwidth consumption

Generating a HTML mail from an existing HTML file:

  • Load: Drag-drop (or open) the HTML file into Turbo-Mailer and edit the subject. Turbo-Mailer thus knows the home directory of the HTML code for finding relatively linked local (embedded) images.
  • "Edit HTML" Button: You can also press the "Edit HTML" button on bottom-right of Turbo-Mailer for editing the current message body quickly in a WYSIWYG HTML Editor. The editor can be configured in Menu/Config/Settings. Default is the built-in Editor of Internet Explorer (IE; version >= 5.5 )

Here is an example HTML code of an email body with 2 locally sourced images, which are (unlike src="http://..." web images) auto-embedded as implicit attachment by TurboMailer. The first image is source-linked relatively (to the folder of the document my_html_mail.html). The second image is source-linked with an absolute path:

[ File C:\www-edit\my_html_mail.html ]
<p>Hello %1%,</p>
<p>This is a picture:</p>
<p><img border="0" src="images/acrobat.gif" width="32" height="32"></p>
<p>This is %-2%:
<img border="0" src="file:///c:/www-edit/images/logo.gif" width="32" height="32"></p>



Further Annotations / Bulk Mailer:

Log Files are stored as processed_YYYYMMDD_hhmmss.log in the directory of the list file or in the Turbo-Mailer directory + optionally refused_YYYYMMDD_hhmmss.log in case some emails are immediately refused by the SMTP server

Keyboard Bindings for the Recipients List Display and ACCU List Display: Ctrl-A = Select All, Ctrl-C = Copy, Ctrl-V = Paste, Shift-Up/Down OR Mouse-Shift/Ctrl-Click = Mark Range

Threaded SMTP offers improvement of transmission speed through multiple parallel SMTP paths. This option exploits the available bandwidth most efficiently and is especially helpful, when email addresses are checked live by an SMTP server (which slows down simple serial processing). Multiple SMTP connections are possible on most servers. You can set the maximum number of parallel SMTP connections (default=5) in the appropriate field below the "Send" button. Block-by-block transmission may be mixed with threaded SMTP. In that case the Mails/Block setting is the maximum number of mails transmitted on one connection path while Max.Threads connection paths may exist in parallel. 


2. Email List Processor

The List Processor (2nd pane in TurboMailer) allowes to compute lists of email addresses. Lists can be imported, combined, filtered, ... and computed by advanced formulas (see TurboMailer API).

The core object of the List Processor is the ACCU list: All computational results, clipboard pastes (paste button in the toolbar) and SetACCU-button results go into the ACCU. The ACCU content maybe transferred to the Recipients List with the Set Rec. List button in order to proceed with sending out mailings with the Mailer.

A set of email lists is managed in User Lists. To each list a short name (SN) is assigned (can be changed). The SN of a list can be used in the formulas to reference a list.

Quick-Start Tutorial : List Computations

  1. Drag-drop new email list files from the Windows Explorer to the User Lists section; or use the dummy lists which are already set up after installation
  2. Mark two files in the User Lists with Click and Shift/Ctrl-Click. Hit button "Copy / Join" ==> The two lists are concatenated and displayed in the ACCU(mulated) List display while duplicates are removed ("or" joined). 
  3. Hit the "Copy to Mailer" button ==> The result list is copied to the To: Address List in the Mailer pane.
  4. Load or paste ("Paste" toolbar button; e.g. copied tables from Excel) some list into the ACCU. Select  "ACCU.randomize()" from the formula combobox. Hit button "Execute" ==> The email list order is mixed randomly
  5. Enter the formula "aa | ab - ac" where aa and ab are lists containing 'good' emails and ac containing 'bad' emails which have to be excluded. Hit "Execute" ==> The appropriate result list is computed and displayed in the ACCU
  6. If you have MS Outlook installed: Select  'GetOutlookAddresses("Personal Address Book")' from the formula drop-down list. Hit "Execute" ==> All emails of that Outlook address book are imported to the ACCU
  7. Save the ACCU content to an existing or new user list by clicking on button "Store List.."
  8. Rename a user lists short name (SN) by right-clicking on that list and selecting "Assign new short name (SN) ..."

Formula processing is a core feature in Turbo-Mailer's List Processor. The formula API is continuously expanded. Functions range from stripping/recomputing email address to scanning text/html files for email addresses or scanning newsletter subscription notification emails out of MS Outlook. See the API below.

User Interface / List Processor

ACCU List  /  Read File / Add / Delete

This is the address list display ("Accumulator"), which holds the current result list of formula computations or the result of "Set ACCU" actions. You can load the ACCU from file or add / delete / edit (double-click) the addresses in the ACCU. You can also paste a list/Excel table from the windows clipboard.
The ACCU list itself can be referenced in formulas as "ACCU" ( e.g.  "ACCU+mylist")
The ACCU contents are permanent throughout shutdown & re-opening of Turbo-Mailer.

<< Set TO: List

When pressing this button, the ACCU list is transfered to the TO: list (recipients of your message) of the mailer.

<< Set ACCU

Press this button to transfer the (join of) current selected user list(s).


Press this button to transfer to ACCU and TO: list of the mailer in one step.

>> Store List

Store the current ACCU content as a new user list on disk.

Up / Down

Move the current selected users lists up/down in the list display

User Lists / Add / Delete / Refresh

Displays the current set of on-disk user lists. Each list has also a short name (SN). The SN (e.g. "mylist") of a user list can be used in computational formulas (e.g.:   "mylist+otherlist" ), in order to reference this list.

Formula / Execute

Enter a list computation formula (see API) or select a template from the drop-down list. Press the Execute button for running the formula. The result will be displayed in the ACCU list.


Turbo-Mailer Formula API:

List Operators
  |  (OR) Example: aa | ACCU
  concatenates lists but avoids duplicates 
  &  (AND) Example: aa & ab
  computes list: items of first list where address (column 0) is contained also in the second list
  +  (PLUS) Example: aa + ACCU
  concatenates lists without avoiding duplicates
  -  (MINUS) Example: aa - log1
  computes list: items of first list where address (column 0) is not contained in the second list. Thus you can remove certain addresses from a set. This operator is for example useful to subtract a log-file list from partial transmissions or a "rejection list" from a list.
  [<start>:<end>]  (SLICE) Example: ACCU[0:7]
  take subset of the address list (for example the first 7 emails)
List Member Functions
  .also_in( other_list ) Example: aa.also_in( ab )
  items which are contained (completely identical) in both lists.  (Similar to & opterator)
  .not_in( other_list ) Example: aa.not_in( ab )
  items from first list which are (in complete form) not in the other list.  (Similar to 
  .lower() Example: aa.lower()
  converts all item strings to lower characters [A-Z] --> [a-z]
  extract_addr(self, column=0, get_addr=True, get_name=False, xcolumns=-1) Example: ACCU.extract_addr(get_name=True)
  extracts the pure email address and/or the pure display name of a complex email address ("User Name" <username@server.dom>). By default it preserves all (xcolumns=-1) extra columns and stores the 1 or 2 extracted columns as first column(s).
  .randomize() Example: ACCU.randomize()
  mixes the list order randomly 
  .strip() Example: ACCU.strip()
  removes duplicate email addresses and empty lines and comments from a list 
  .columnstrip( [number_of_columns[,startcolumn]] ) Example: ACCU.columnstrip()
  takes out columns [startcolumn .. startcolumn + number_of_columns] from the list.

For example aa.columnstrip(1) takes cuts out only the first column (=email address) from a list with additional info-columns (separated by TAB or ; ).
.columnstrip is a short-cut for a special form of .xformat 

  .xsort( [cmpfunc] ) Example: ACCU.xsort())
  sorts the list alphabetically. The optional cmpfunc sets other sort criteria like:
- reverse sorting (Python like skript syntax):
   ACCU.xsort( lambda a,b: -cmp(a,b) )

- sort on the length of the email address string:
   ACCU.xsort( lambda a,b: cmp( len(a),len(b)) )

cmpfunc can also be a regular expression pattern, with zero or one result group like:
- sort on the domain name  :
  ACCU.xsort( '@(.*)' ) 

  .sortdom1() Example: aa.sortdom1()
  sorts according the domain name of the email addresses. This function is  a short-cut for .xsort and appropriate cmpfunc
  .sortdomL() Example: ACCU.sortdomL()
  sorts according to the last piece of the domain name (.com, .uk, .de, ...). This function is  a short-cut for .xsort and appropriate cmpfunc
  .xfilter( pat ) Example: ACCU.xfilter( '@[aA].*' )
  finds items matching a regular expression pattern 'pat'. ACCU.xfilter( '@[aA].*' ) would get all emails where the domain name starts with an 'a'.
  .xformat( fmt  , [l1 [,l2 ... ]] ) Example: ACCU.xformat(' "%1%" <%0%>' )
  reformats a list file - with possibly changed column ordering,. Can compose full-name email addresses or can even mix columns of multiple lists (of same length).

'fmt' is the format string. The column variable identifier is %column[:fileindex]%.
'l1','l2',... are short names of optional other list files who should have the same shape and length. (missing rows result in empty strings)

Other examples:
aa.xformat("%1%;%0%")  # exchanges column 0 and 1
aa.xformat("%0%; hello ; %3:1%", ab) # mixes column 0 of list aa with column 3 of ab and insertes a constant string
aa.xformat(' "%1%" <%0%>; %1%; %2%' ) # composes full-name email addresses and preserves columns

  .xformat_by_email( fmt  , [l1 [,l2 ... ]] ) Example: ACCU.xformat_by_email(' "%1:1%" <%0%>')
  reformats a list file - using columns of other lists entries with same email address.

'fmt' is the format string. The column variable identifier is %column[:fileindex]%.
'l1','l2',... are short names of optional other list files who contain (some of the) same email addresses. Missing entries result in empty string insertions.

Further example:
rejlist.xformat_by_email("%0% ; %1:1% ; %2:1%", fulllist)
mixes email address (column 0) of list rejlist with column 1 and 2 of list fulllist - using entries with same address.

  .xreverse() Example: ACCU.xsort().xreverse()
  reverts the order of the emails 
  .xremovedups(pat=".*@([^> ]*)") Example: ACCU.xremovedups(".*@([^> ]*)"):
  removes duplicates from the list using a regular expression (group 1) to identify a special part of the address. The example above (which uses the default regex pattern) would keep only one (the first) address for each domain name.
Note: ACCU.xremovedups( "(.*)" ) is equal to ACCU.strip()
  ScanOutlook(<outlook_folder>, <subject_pattern>, <email_pattern>)
  Example: ScanOutlook("inbox/newsletter_in","*Newsletter*","Email:\s*([\w.+-]+@[\w.+-]+)")
  Scan email text bodies in an MS Outlook folder and search for an email address pattern (and for optional fields), extract one email address per mail. This is for example used in order to bulk extract addresses from subscription notification mails'. 
email_pattern is a regular expression, which must return one or more groups containing the address and optional info columns: for example the ([\w.+-]+@[\w.+-]+) part of the example above extracts the email address. the \s* in the example above matches any whitespace. If no address pattern is found an email body, the scanner jumps to the next email body, thus not breaking on 'empty' mails. In case of more groups in the regular expression those groups are rendered into additional 'personalization' columns (separated by ; ) of the result table.
The subjectpattern matches with unix/dos wildcards ( * ? ). Use "*" for scanning all email in the folder.
The outlook_folder name is as displayed in your Outlook GUI. The Inbox is alway accessible with inbox/... . Subfolder names are separated with slash / . 

The above example scans my extract the adress from the following example mail in the folder "newsletter_in" folder:

Subject: Subscription Notification
This is a subscription notification mail for Project XY.
Email:   test@nowhere.xyz


  ScanOutlookSenders(<outlook_folder> [, excl=<exclude_email_pattern>])
  Scans sender addresses of all mails in this Outlook folder.
  GetOutlookAddresses(<adressbook>) Example: 
GetOutlookAddresses("Personal Address Book")
  fetches all email addresses contained in an Outlook (MAPI) address folder 
  SplitList(<listname>, <items_per_list> [, <resultfilespattern>])
  Splits a (big) list into smaller pices with max. items_per_list items in each list. The result_files_pattern must contain a %s or %05d ... which is replaced with the start index number of the first email of each result list like:
The first partial list file is returned as new ACCU content. (The rest of the files may be drag-droped from the Windows Explorer to the User Lists Set in Turbo-Mailer.)
  ScanFiles(<path_pattern> [,<pa_email> [,n_emails_per_file]] )
  Example: ScanFiles("C:/files/*.txt","([\w.+-]+@[\w.+-]+)")
  Extracts all email addresses from a set of local files specified by wildcards ( * ? ). The regular expression may contain one or more groups. In case of more groups those groups are rendered into additional columns (separated by ; ) of the result table.
  ODBCSelect('myaccess','SELECT email from table1')
  ODBCSelect('mydb/user/passwd','SELECT email,name from table2')
  Fetches email (and other columns) data lists from ODBC-connectable databases using SQL-SELECT.
Hint: you can setup databases like ACCESS-files etc. for SQL-queries by adding them to the Windows Database Sharing Setup (DSN). See Windows Control Panel / Administration / ODBC.
  Write to feedback@xellsoft.com for new suggestions.

(the Formula API maybe extended in future Turbo-Mailer updates. Check this document online from time to time to be informed)


3. Other User Interfaces

Dialog Menu/Config/Settings

  • HTML Mail: Send also a text version
    When checking this option, a text-only extract of the HTML message is inserted in the mail. Thus the mail can be displayed by non-MIME & non-HTML email readers
  • HTML Editor: Editor call
    Set a startup call for your favorite HTML editor here or select a template call from the drop-down list. The dummy-call "IE>=5.5" uses the HTML editor of the MS Internet Explorer (version >= 5.5), which is available on most PC's. If no other good editor is installed on your system, it is recommended to install Mozilla or Netscape.
  • Block-by-block SMTP transmissions: Number of seconds
    Set the number of seconds to wait between block-by-block SMTP transmissions


4. Command Line Usage:

Turbo-Mailer can send out mails by using the command line (batch mode). The default settings (SMTP, auto-dial, ...) have to be set up in the GUI before using the command line.


turbomailer_con.exe -a test_addresses.txt

turbomailer_con.exe -t mail.eml -a test_addresses.txt

turbomailer_con.exe -f "From Addr <from@adr>" -r reply@adr -t mail.eml -a test_addresses.txt



Usage/Windows: turbomailer.exe [OPTIONS] [FILES]
Usage/Console: turbomailer_con.exe [OPTIONS] [FILES]


-a listfile : Address list file (one address per line or CSV/TabSV table file)
with extra personalization columns.
-t message_file (.eml, .html, .txt)
: The mail message / template. Files ending in .html or .htm are
treated as HTML. Messages beginning with "Subject:.." and
double newline like "Subject: \n\n"
define a mail subject.
Otherwise commandline option -s is required.
HTML: References to local image files automatically create
embedded attached images in the mail.
-s subject_text
: The mail Subject. Enclose subject with spaces in quotes like:
-s "My Subject"
A subject can also be defined in the message_file (-t).
An error is raised, if there is no subject at all.
-f from_address
: your "From:" email address
-i att_path : Inserts an explicit attachment file into the mail.
This option can be used multiple times for multiple attachments
-r reply_address
: address where recipients shall reply to
( instead of )
-v SMTP_server
: the SMTP server and optional port
-y : use secured SMTP with SSL after TLS
-u SMTP_user : The SMTP server user-ID for authentication
Default: No authentication
-p SMTP_pwd : The SMTP server password.
It is asked interactively if not present but "-u" used
An asked password can be stored (encrypted).
-b mails_per_block
: Reconnect to SMTP-server after each transmissions. --block-delay n : Sleep n seconds before sending next block (see "-b") -z max_treads : use parallel threads for transmission.
-x x_mailer_tag
: mail software name to put in the mail header
--bcc bcc_address
: Use BCC bulking method and take bcc_address as common display
--bcc-n n : Set max. number of mails for one BCC transmission.
--bcc-show : Put BCC addresses openly into the mail header
--msgid : Message-ID created by TurboMailer
--printmime : Display the MIME body of the last transfered mail item
--encoding enc
: Set the encoding for the input message.
Tries to use the UNIX "recode" filter for uncommon transfer
encodings. ( Debian Installations: "apt-get install recode" )
turbomailer_con.exe --encoding greek7 -t mail.gr7.txt
Default: Locale encoding
--utf8 : UTF8 unicode encoding for message file (= "--encoding utf8")
turbomailer --utf8 -t mail.utf8.txt
Note: UTF8 files with BOM header will be recognized auto
--license : The license key will be asked and stored
--simulate : simulation mode without really transfering mails
-c : Don't ask confirmation for sending
-l loglevel : 3=default 2=print no individual addresses on console
-h / --help : Display this help


*.eml : Email/Template files; contain: subject, text/html, attachments
*.lst / *.txt : Recipients list files
*.ptm : TurboMailer Project files (settings + mail + recipientslist)


turbomailer(_con).exe --simulate
turbomailer.exe -a recipients.txt -v smpt.mailserver -s "My Subject" -t mail.html
turbomailer.exe -v smtp.gmail.com -y -t mail.txt -u xy@gmail.com -f xy@gmail.com


The Linux version of TurboMailer provides an advanced command line interface : Linux Command Line Syntax.


5. Turbo-Mailer FAQ / Trouble Shooting

" SMTP Setup for a Google Mail (@gmail.com, @googlemail.com) account "

  • In the Google Mail account manager (online) you have to enable SMTP & POP:
    The switch is typically found like: GMAIL Account / Edit Labels / Forwarding and POP / 1. Status / Enable POP
  • Access this GMAIL account at least once sucessfully by a POP download using a POP email client (your normal email client software). Only after doing this, sending through SMTP may also be possible.
  • Settings in TurboMailer:
    • SMTP Server: smtp.gmail.com
    • From Address: YOUR_NAME@gmail.com
    • Or From Address with display name: "YOUR DISPLAYNAME" <YOURNAME@gmail.com>
    • SSL checkbox: ON
    • TLS checkbox: ON (SSL after TLS on port 25) or OFF (direct SSL on port 465)
    • SMTP user: YOUR_NAME@gmail.com (complete email address!)
    • SMTP password: YOUR_PASSWORD
    • Max Threads Checkbox: OFF / ON (try this option only after success without this option)
    • Notes: -

" SMTP Setup for Hotmail/MSN/Live.com (@hotmail.com, @live.com) account "

  • Settings in TurboMailer:
    • SMTP Server: smtp.live.com:587
    • From Address: YOUR_NAME@hotmail.com
    • Or From Address with display name: "YOUR DISPLAYNAME" <YOURNAME@hotmail.com>
    • SSL checkbox: ON
    • TLS checkbox: ON
    • SMTP user: YOUR_NAME@hotmail.com (complete email address!)
    • SMTP password: YOUR_PASSWORD
    • Max Threads Checkbox: OFF (multi-threaded transfer may not work with this email provider; try this option only after success without this option)
    • Notes: first transaction may fail with error like "(550, '5.3.4 Requested action not taken; To continue sending messages, please sign in to your account.')"; In this case log-in through web interface, then retry with TurboMailer

" SMTP Setup for Yahoo Mail (@yahoo.com / @yahoo.de / ...) account "

  • Enable the SMTP & POP transfer in the account of this provider if appropriate
  • Settings in TurboMailer:
    • SMTP Server: smtp.mail.yahoo.com / smtp.mail.yahoo.de / ...
    • From Address: YOUR_NAME@yahoo.com
    • Or From Address with display name: "YOUR DISPLAYNAME" <YOURNAME@yahoo.com>
    • SSL checkbox: ON recommended (optional)
    • TLS checkbox: OFF recommended (optional)
    • SMTP user: YOUR_NAME (only ID; not complete email address!)
    • SMTP password: YOUR_PASSWORD
    • Max Threads Checkbox: OFF (multi-threaded transfer may not work with this email provider; try this option only after success without this option)
    • Notes: see also Yahoo POP3 and SMTP Settings and Instructions for Popular Email Providers

" SMTP Setup for GMX Mail (@gmx.net ...) account "

  • Enable the SMTP & POP transfer in the account of this provider if appropriate
  • Settings in TurboMailer:
    • SMTP Server: smtp.gmx.net
    • From Address: YOUR_NAME@gmx.net
    • Or From Address with display name: "YOUR DISPLAYNAME" <YOUR_NAME@gmx.net>
    • SSL checkbox: ON recommended (optional)
    • TLS checkbox: ON (optional)
    • SMTP user: YOUR_NAME@gmx.net (complete email address!)
    • SMTP password: YOUR_PASSWORD
    • Max Threads Checkbox: OFF/ON (try this option only after success without this option)
    • Notes: -

" SMTP Setup for other popular email providers "

  • Check the "SMTP settings" docs of this provider. Test with your normal email client software first. Use same settings in TurboMailer.
  • Possibly the special details for your provider can be found easily in this list.

" Where to look if mails seem to be not transferred successfully ? "

In case of seemingly non-transferred mails there are 3 places to check:

A) Are certain addresses "refused" directly by the SMTP server? Do you get immediate error messages by TurboMailer?

  • You should see a short transfer statistics in the info message box, which TurboMailer raises immediately after end of mail transfer.
  • Navigate into the 'log' folder besides your saved mail message file (or from Menu/File/ExplorerDataFolder), and check the latest refused_*.log files and the processed_*.log files for your transfer job.
  • Adresses in the processed_*.log (text) are correctly transferred to and accepted by your SMTP server.

B) Do you get bounce mails / error messages sent to your From / Reply-to address which you are using for your mailing?

C) Check the spam filter folder(s) of your recipient test address(es).

If after some 6 hours you don't get the information about the "leak" in any of those locations (which usually also tells you the reason of stop) then this would indicate an odd configuration problem:

  • Your From / Reply-To adress may be invalid
  • Your SMTP / email server system could be incorrectly configured / contain a bug.

Regarding From / Reply-To adress: Is your From-address for your mailings compatible with your SMTP server? Some SMTP servers require the 'From' address using the same domain name as the SMTP-server name or even fit the SMTP user account. In such cases you cannot use arbitrary/fantasy 'From' addresses with many simple SMTP accounts.

Yet if there is such kind of problem, then you should in most cases get an immediate 'Refused' (check the refused logs as mentioned above).

Possible causes for spam classification / rejection:

  • Your SMTP server may be black-listed / dynamic
  • You may need to use a proper From address in the mailings (see above)
  • You may need to set/change the "X-Mailer" tag in Menu/Config/ApplicationSettings (best use a personal unique name like "YOUR_ID News" for this tag)
  • Your mail subject and/or content as it may 'score' regarding typical Bayesian spam filter probabilities.
  • Check the hints of the spam filter or in the rejection messages.

" How do I add images and attachments to my mailings ? "

  • HTML: See Embedding images in HTML email
  • Text/HTML: Add the images/files as attachment in Turbo-Mailer
  • For bigger bulk mailings you should put images on a web server and use absolute web-links to images and files.
    Example: Add server hosted images in HTML like : 
    <img src="http://www.myserver.com/images/mypicture.gif">
    Link to a download in HTML like:  
    <a href="http://www.myserver.com/data/myfile.zip">Dowload File</a>

" How many mails are transmitted per minute ? "

  • This depends on your internet connection and SMTP server speed. TurboMailer itself is not a bottleneck regarding transfer speed.
  • You can however try to use multi-threaded SMTP to exploit bandwidth best: Set&Activate the Max. Threads field for example to 5 in the Mailer pane of TurboMailer
  • Speed Example: if you send mails with 2000 Byte length and you have a 1MBit/s internet connection to your SMTP server and your SMTP doesn't cause extra delays, then you can transmit about 1000000 / 8bit / 2000 * 60s/min = 3840 (personalized) mails max. per minute 
    (no BCC: bundling option in use)

" I get an error like 'getaddrinfo failed', 'connection aborted' etc. "

  • you do not have a proper internet connection at all
  • check if your browser works on the internet. 
  • check if your ordinary email client software works with the same SMTP address & settings like TurboMailer!?
  • ensure, that your firewall lets pass TurboMailer through on port 25 (non-SSL, SSL after TLS), and/or on port 465 (SSL without TLS) - or at whatever special port (like 1234) which you use explicitly (SMTP server like: smtp.someserver.dom:1234).

" My SMTP Mail Server doesn't allow more than N mails ? "

  • your server may have a limit for the number of emails transferred within a certain time frame
  • try the feature "send in blocks"; e.g. values like 10, 20 or 90; also try to use a "Delay" between blocks
  • try the BCC bundling option of TurboMailer
  • try the multi-threaded transfer option (parallel transfer) of TurboMailer
  • try to split big email address lists in smaller parts (SplitList function in TM's ListProcessor) and send the part with a time delay
  • you may need a more capable SMTP server / account type

" I get (nearly) all target addresses refused from my SMTP Mail Server (refused list long) ? "

  • Maybe try to set a non-empty X-Mailer tag in Menu/Config/Settings/X-Mailer Tag. Compuserve for example is known to require the X-Mailer tag. Best use a presonalized X-Mailer Tag like "YOUR_ID News"
  • Your SMTP server doesn't like something in your mails
  • The target addresses may in fact be invalid
  • Most SMTP servers want you to use really your correct 'from' address for your SMTP account. 

" My SMTP server doesn't accept the mails for transmission? "

  • Typically you get an SMTP Error with a Error Code and short description of reason.
  • Example Error: SMTPDataError: (550, '5.3.4 Requested action not taken; To continue sending messages, please sign in to your account.')
  • An overview/explanation of error codes and reasons is for example found here: SMTP Error codes

" My SMTP server doesn't allow to log-on? "

  • Try to use the SSL login feature (SSL checkbox right to the SMTP Password in the main mailer page of TM). MSN mail is known to require SSL/TLS log-on.

" How to email to an address list via SQL SELECT query (MySQL/Linux, ODBC/Windows) "

  • On Windows in the TurboMailer GUI there is a function Menu/Tools/ImportAddressListFromODBCSQL. Follow the instructions and enter the access path like odbc_export_table/user/password and the SQL SELECT query at the appropriate fields. The relevant table needs to be exposed via the Windows ODCB Manager (Windows Control Panel).
  • Linux / MySQL batch example:
    echo -n '#' > adr.txt
    mysql testdb -B -u root -p -e "SELECT email,name FROM subscriptions WHERE ch='goodnews'" >> adr.txt
    tmailer -a adr.txt -t msg.txt -s "Test Subject"
  • On Windows you can use the turbomailer_con.exe (commandline version) in a similar manner like the Linux 'tmailer'




Turbo Email Answer box

Turbo-Mailer main page.
Buy Now! Buy Now!
Xellsoft's new HarvEX eBay sniping & automation software

Xellsoft SynchronEX File Synchronizer and FTP software

Xellsoft Custom Software