Frequently Asked Questions
Here we have listed many of the common questions encountered in the use of NetMailBot.
Q: NetMailBot successfully sends my email, but my SMTP server rejects it, saying that authentication is required. What does this mean?
A: Most likely you must authenticate with the SMTP server in order to send email, that is, supply a user name and password. In this case, use NetMailBot's -authlogin and -authpassword parameters to supply your authentication credentials to the SMTP server.
This problem can also appear as an error message from NetMailBot saying that "relaying is denied on this server".
Since different SMTP servers can report the need for authentication differently, we suggest using -logfile and -debug to capture all of the details of the communication between NetMailBot and the server to a logfile. There you can search for some sort of message from the SMTP server complaining about the need to authenticate.
Q: How can I upgrade my NetMailBot trial to the full version?
A: If you are a current license holder of NetMailBot, please contact us for information on upgrading to the newest version: firstname.lastname@example.org.
Q: Everything seems to go fine with sending emails with NetMailBot - I receive no errors, either from NetMailBot, my sending SMTP server, or any of my recipients' receiving SMTP servers, yet some of my intended recipients still get no email. What is happening?
A: An increasing "problem" is the use of Unsolicited Commercial Email (UCE, or commonly referred to as "SPAM") filtering. Recall that NetMailBot communicates directly with your sending SMTP server, but the sent emails have to make their way to the recipients' receiving SMTP servers and ultimately to your recipients' mail clients. Along this chain, a mail might be judged as "SPAM" and filtered out, possibly at the receiving server, or at a client program. Unfortunately there is no way to control this from your end. If people who are expecting your mail complain that they never receive it, and you encountered no errors in sending it, they might want to check with their system administrators to see if their receiving mail server is configured for "SPAM" filtering.
Q: What kinds of things can affect the performance of NetMailBot?
A: NetMailBot is able to process thousands of email addresses per hour, and is successfully used in email campaigns consisting of tens of thousands of emails. We have found through our interactions with customers, however, that for reasons not completely known, performance is best when NetMailBot, your SMTP server, and your DBMS all run on the same machine. In fact, using a remote SMTP server can have a manyfold negative impact on performance, although it tends not to be problematic unless you are at the level of sending tens of thousands of emails. Thus, we recommend using a SMTP server local to the machine when you can. Of course, overall, performance can vary according to many factors, such as the available bandwidth of your connection to the internet, your machine speed, etc.
Here are some data on a trial run we conducted in-house at ExclamationSoft:
One of our customers who uses NetMailBot for mass email campaigns tends to send on the order of 70,000 emails in one mailing (this was as of February 2003, and their membership list was steadily growing!). Although we do not know their machine specs, the customer, using a local SMTP server (i.e. on the same machine as NetMailBot) has realized sending rates of 20,000 emails per hour (the customer's network connection to the internet was a 10MB connection). Thus, even on a single machine, NetMailBot can achieve tremendous email sending performance.
Another of our internal runs (with an SMTP server local to the machine on which NetMailBot ran) achieved a send rate of 200,000 mails in 6 hours, or roughly 33,000 mails per hour.
NetMailBot is a single-threaded email application - it sends out one email at-a-time. An alternative approach to sending very large batches of email is to run multiple instances of NetMailBot in parallel, on different machines or even on the same machine.
Q: NetMailBot complains with the following error: "Cannot address message. Either the mail server does not accept 'friendly' names or the from email address has been rejected - Cannot continue." What does this mean?
A: This is another common situation indicating the need to authenticate to the SMTP server. See other FAQs in this list and also the NetMailBot's -authlogin and -authpassword parameters.
Q: I am unable to send email to anyone outside of my domain. Why is that?
A: Authentication problems are common and show up in different forms. Another of these confusing situations is that the SMTP server is configured so that if users do not authenticate to the server, then they can only send emails within the SMTP server's domain but not to external domains. For example, if XYZ Corporation's SMTP server is smtp.xyz.com, then users such as email@example.com and firstname.lastname@example.org can send emails to each other, but not to email@example.com. In order to get access to external recipients, senders must authenticate to the server. Use NetMailBot's -authlogin and -authpassword parameters to supply your authentication credentials to the SMTP server.
We suggest using -logfile and -debug to capture all of the details of the communication between NetMailBot and the server to a logfile, as different SMTP servers can "complain" about the need for authentication in different ways. For example, one customer's server reported:
"error 553 This domain isn't in my list of rcpthost"
...and this turned out to be another situation requiring authentication.
If using NetMailBot's authentication parameters seems not to work, you may have to talk to the administrator of your SMTP server to find out if there is some configuration problem that might ultimately be to blame. In some cases, your IP address or machine name needs to be added to a list of users able to send mail to domains outside of yours. As different SMTP servers can be configured differently, we cannot give specific advice. It might be useful, however, to let your administrator know that NetMailBot supports what is known as "PLAIN TEXT AUTHENTICATION".
Q: I can't verify (-verify) email addresses while sending emails. Why not?
A: You cannot simultaneously send emails with NetMailBot and verify the intended recipient email addresses with the -verify parameter. This is two-step process - first, you should run a verification pass, then remove any questionable email addresses (or reported known "bad" ones) and then do a sending pass.
NOTE: Email address verification is maintained in NetMailBot for backward compatibility with older versions, but is no longer a supported feature.
Q: How can I find out the name of my SMTP server?
A: Your ISP should provide that information for you in your sign-up information.
You can also look it up using a tool called "nslookup" on Windows NT 4.0/2000/XP/2003. Refer to the following Microsoft Support case for more information:
Alternatively, if you have received an email from someone who you know uses the same SMTP server you intend to use (for example, your company's email server), then you can look at the SMTP header information in that received email to figure out the sending SMTP server. Look for a feature in your message client to show you the message's "Details" or the "Message Source".
Q: How do I specify the name of my SMTP server machine in the -server parameter?
A: You should give the machine's name on its domain, e.g. mail.domain.com or smtp.mail.com. If you are not sure what this should be, ask your network administrator or ISP. If you are inside the network (e.g sending email via a mail server on another machine in your corporate LAN), ask your network administrator how to specify the machine name.
Q: I use AOL for my ISP, and I tried specifying their mail server in the -server parameter to send mail, but it failed. Why?
A: You will need to use an SMTP server which you have control over (or with which you are permitted to send mail and you have access to its administrators) either through a web host, another ISP, or a free email account. Experience indicates that AOL does not allow sending out email with their mail servers, so you will have to find a different provider.
There are a number of free email services out there that will allow you to use their SMTP servers to send out email. Try searching for e.g. "Free SMTP Access" on the internet.
Q: I want to send emails to a list of "Bcc:" (Blind Carbon Copy) recipients, but the -to parameter seems to be required. Is it?
A: Yes, it is. SMTP servers require a "To:" recipient. For most cases, you can use your own email account or a dummy account that you can clean out later. Of course, if you can send one email to many "Bcc:" recipients, then you only have to delete one email from this "dummy" account. See our examples on addressing to get an understanding of how variations in how emails are addressed affect the actual number of emails sent out.
Q: Where on the NetMailBot command line do the replacement IDs work in mail merges?
A: You can use replacement IDs on those parameters that "make sense" for substitution in mail merges, such as addressing (-to, -tofriendly, -from, -fromfriendly, -cc, -bcc, etc.), and message content (-subject, -body, -bodyfile, etc.). Of course you wouldn't use mail merge features in, for two examples, the -server parameter, or in specifying which database column holds the email addresses (-dbemailcolumn). If you encounter any problems with the replacement IDs, you can always inquire at our support department for help.
Q: I can't get the Mail Merge functionality to work. I have set up my DSN, specified my query and email column in the database, and set up my replacement IDs, but to no effect. What is wrong?
A: The most common mistake in using the mail merge features culminating in this situation is simply omitting the -personalize parameter - this is the "switch" that actually causes NetMailBot to do the personalizing / mail merge. All the rest are just setting this up. If you add -personalize and still have problems, it could be your DSN, database query, etc.
Q: I am unable to access my database with NetMailBot. My attempt fails with this (or a similar) error: "Error: -2147467262 Msg: No such interface supported Description: Database initialization failed."
A: This is a common error indicating that your computer does not have the latest Microsoft MDAC components installed. These are required for use with NetMailBot. At the time of this writing, you can get the latest MDAC components at:
Look for "MDAC Downloads".
Q: I'm not sure what DSN to use for my particular database. Can you give me any advice?
A: Two websites specializing in DSNs and connection strings for all sorts of databases and connectivity mechanisms are:
Although we can't vouch for the accuracy of the information provided at these sites, we find them to be handy resources to have, so we've provided them here.
Q: NetMailBot stops if a bad email address is encountered and triggers and error with my SMTP server. How can I get around this?
A: In the case where one is sending to more than one email address and -recipientlimit is set to 1, NetMailBot will stop if it encounters a bad email address. In all other cases, NetMailBot will continue on with processing. This is by design, due to the fact that there are cases with our customers who use NMB for automation or scheduled sends, where one does not want processing to continue when a bad email address is encountered.
The recommended approach is to clean out the mail list by database queries outside of NetMailBot, or by performing a test run, using -test, to capture the bad email addresses in the bad email log file, and remove them before the live mailing. "Clean and Purge", so-to-speak.
Q: When using mail merge, since the recipient email addresses are taken from the database, what should I put in the -to parameter (since it is required)?
A: You can actually put in any email address you like, since it is ignored in this case.
Q: I'm using a wildcard (*) in my -attachment parameter path because I want to attach any files of a particular type, but it isn't working. How do I use wildcards with attachments?
A: This is a common confusion. Customers often attempt something like:
However, NetMailBot accomplishes the desired effect with the -filemask parameter; the -attachment parameter can be used to specify individual explicitly named files, or the -attachmentdir parameter can be used to specify a directory in which to look (any files appearing there will be attached). -filemask allows you to filter out any files not meeting the specified criterion. So, the above example would be changed to:
-attachmentdir "D:\Reports\CurrentWeek\" -filemask "Rep*.txt"
See the individual parameters' documentation for more details.
Q: I am trying to send very large attachments (on the order of megabytes or even tens of megabytes) and my attempts are failing. What is the problem? Is NetMailBot limited in how large an email it can send?
A: NetMailBot is only limited by the restrictions imposed by your mail server. For example, many mail servers have a 10MB limit to the size of an email. What is most likely happening is that the connection between NetMailBot and your mail server is timing out before the entire mail can be sent.
NetMailBot provides the -generaltimeout parameter to get around this problem. You specify (in milliseconds) how long the connection should be kept alive. A setting of 60,000 ms gives one minute. You might have to experiment to find a good number; one customer was sending attachments on the order of 20-30MB and was still having timeout problems with a setting of -generaltimeout 1200000 (which amounts to 20 minutes), but of course it all depends on what bandwidth you can expect from your internet connection.
As an interesting note, we did have a customer who was indicating that NetMailBot was splitting their large attachment (on the order of 28 MB) into 8 pieces and was sending these consecutively to the same "To:" address. We noticed that they were using the -failsafe parameter. As NetMailBot does not split attachments, we investigated and concluded that what was actually happening was that the SMTP server connection was timing out repeatedly, giving the illusion that the attachment was being sent over 8 emails!
Q: I'm using Microsoft Access for my database, and I'm getting an error: "data type mismatch in criteria expression". What is the problem?
A: This might have something to do with your database query. Access query values should be encapsulated in pound signs, for example:
-dbquery "Select email FROM customers WHERE purchase_date = #10/7/2002#"
Pound signs are the only thing that should encapsulate a query for Access.
Q: Does the NetMailBot installer support "silent installation"?
A: The installation package for NetMailBot does not support a silent install. However, there are only 5 files needed for NetMailBot to work: one executable (.exe) and four supporting DLLs (.dll) - none of which need to be registered.
You could easily copy all 5 files to the chosen installation path and it would work without any problems.
Q: What are the details of the NetMailBot installation?
A: There are a number of files that are included in the installation of NetMailBot. We use Wise Installer, a recognized installation utility, to install all of our files.
Primarily, there is the main executable:
...and supporting DLLs, created by us:
BotDll.dll - Utility functionality.
DBDll.dll - Database functionality.
MailDll.dll - Mail protocol functionality.
MailListBotDll.dll - Wraps MailDll.dll functionality into higher level functions.
And system DLLs that we update if necessary:
MFC42.DLL - Version 6.x.
MSVCRT.DLL - Version 6.x.
And of course, numerous help files, all HTML files, that do not overwrite or affect anything. There are no system services installed. NetMailBot does not replace any files in the C:\windows\command (or C:\WINNT\system32) directory. The files install to the X:\Program Files\NetMailBot directory (X: being whatever drive letter applies); and the installer will update MSVCRT.DLL, MFC42.DLL, and MSVCP60.DLL. In addition the installer will place the netmailbot directory in your system PATH.