RSS Feed
Background log writer
Posted by Paul Smith on 10 July 2014 12:50 PM

The diagnostic log files which VPOP3 generates can add a lot of extra disk load to a VPOP3 server. For this reason, VPOP3 doesn’t usually write data to the log files as soon as the event happens. The log file entries are held in memory until the “background log file writer” gets around to it, and writes them to the actual disk files. This generally works well, however if the disk is exceptionally slow (e.g. failing disks, or RAID5 SATA drives on a busy system) then it has been known to lead to out-of-memory errors.

The reason that this background writing system is necessary for VPOP3, where other servers may write log files immediately without serious consequences, is because VPOP3 can write to many different log files to make reading them easier. Depending on the settings, it can also write a lot of data to the log files – especially if session logs are enabled. This can cause a lot of disk seek activity, which slows disk access down across the whole PC.

In versions of VPOP3 prior to v6.7, the behaviour of the background log file writer was fixed in the software, but in v6.7, we added configuration options to customize the behaviour. This can be used to decrease disk load further, or to make the log files be refreshed more frequently.


You can customise and monitor the behaviour of the log file writer by going to Settings -> Diagnostics -> Log File Writer

Log Writer Settings

If you turn off ‘Enable logging to file’, then VPOP3 will just discard all logging entries. This is not recommended for normal use, but may be useful as a diagnostic tool to see if performance problems are being caused by VPOP3’s logging.

The settings on this page tell VPOP3 how to change how often to write data to the log files, and how to automatically adjust its behaviour depending on the current load.

VPOP3 writes log file data in ‘bursts’, rather than as the log entries are generated. The main thing you can configure is how long to wait between these bursts. The first 4 settings let you configure this.

Min time between log writer bursts and Max time between log writer bursts set limits for the time between the bursts. In the screenshot above, this means that the delay between bursts can be between 0 and 10 seconds.

The If lines written < X then increase time between bursts and If lines written > y then decrease time between bursts settings tell VPOP3 how to adjust the time depending on load. They mean that if there is lots of data to log, VPOP3 will wait less time between writes, but if there isn’t much data then it will increase the time between the writes, to avoid writing lots of small chunks of data.

The Only write to disk if at least x lines waiting to be written setting prevents VPOP3 writing small bits of data. On a hard disk, each write will probably incur a delay – eg because of disk latency (waiting for the disk to rotate to the correct position) or seek time (moving the write head to the correct track on the disk), so writing small bits of data unnecessarily is not a good idea.

The Always write if oldest line is over x ms old setting prevents stale data sitting in memory for a long time. This overrides the previous setting. For instance, if VPOP3 is just logging errors, it may just generate one log entry every hour – if you had told VPOP3 not to write to disk if there are less than 10 lines to log, there could be a 10 hour delay before the first error is logged, which would not be very helpful, so you can limit the maximum time to delay.

The Current time between log writer bursts value shows how long VPOP3 is currently waiting between bursts of writing to disk.

The Log file stats section shows the current statistics. For instance, how many writes have taken place in the last 10 minutes, and how many lines & bytes were written in that time, and so on. This can help you see if certain log files may be causing a lot of disk access.

The pop3clt.log, smtpclt.log, smtpsvr.log, smtpclt.log, imapsvr.log, nntpsvr.log, nntpclt.log files are Session Logs which can be enabled/disabled on the Session Logs tab. If you have lots of writes to the VPOP3.log file, you may want to decrease the logging level on the General tab.


An advanced, but very effective way of decreasing disk load is to set up a RAM disk (e.g. and have VPOP3 write its log files to that. Since you will rarely want to access diagnostic log files after a computer reboot, this works well. If you have a RAM disk, then you can change the background log file writer configuration so that it writes to the log files more frequently, as disk seek times are not an issue.

Using an SSD for log files is not recommended. It will work fine, but SSDs have limited write cycles, so using them for write-heavy tasks such as log files will reduce the lifetime of the SSD.

Read more »

Free Webinars / online training
Posted by Paul Smith on 08 July 2014 12:28 PM

We are planning on holding some Webinars /online training events for VPOP3 users and partners. These will be free, but availability is limited.

The initial planned dates are:

Friday 29th August 3.00pm – 4.00pm – beginners (registration)

Friday 12th September 3.00pm – 4.00pm – advanced usage (registration)

Friday 19th September 3.00pm – 4.00pm – beginners

(The above times are UK time – UTC + 1hr)

Please email if you are interested, indicating the session you would like to ‘attend’.

Rather than being a carefully choreographed “isn’t our software great” presentation, we plan to make it more of a Q & A session. If you can give us advanced warning of any questions you may have, this would help as we may be able to set up our demo machine accordingly to avoid wasting time during the session. If there aren’t specific questions, then we can run through some things, but if you have questions, it may be more helpful to use those ideas. Note that we cannot guarantee to answer all questions – we have to consider whether they may be appropriate for the session in question and may be helpful to other attendees.

(Note that this is a new venture, so there may be teething troubles initially – please bear with us in that case).

Read more »

Running VPOP3 on Wine
Posted by Paul Smith on 14 February 2014 10:19 AM

No, this isn’t about how to run a mail server when you’re a bit inebriated. For those who don’t know, Wine is a Windows ‘emulator’ for Linux (actually Wine Is Not an Emulator, but by calling it an emulator it makes it a bit easier for people to understand). The main ‘problem’ with Wine, is that it is not a complete implementation of the Windows APIs, so some functions won’t work.

This is an advanced article, and requires a fair amount of technical competence, and experience of Linux as well as VPOP3.

There are several free POP3/IMAP4/SMTP servers available for Linux, but we do regularly get enquiries about whether we do a Linux version of our VPOP3 software. This is mainly because VPOP3 is a lot easier for less technical people to configure and manage than the freely available alternatives. Up to now, we’ve said “there’s no Linux version, and we don’t have plans to make one, but you may be able to get it to work under Wine – good luck”. Now, for various reasons, we decided we’d like to give it a try. The main advantage of running VPOP3 on Wine is that you don’t need to buy a Windows licence (you still need a VPOP3 licence).

Well – the good news is – I got it to work. The bad news is, it wasn’t trivial. So, this article will take you through what I did to get it to work.

NoteRunning VPOP3 under WINE is NOT officially supported, so you may encounter problems. We’re happy to hear of any problems you may encounter, but cannot guarantee to fix them. This is currently experimental!

The steps I took were:

  1. Install Ubuntu Desktop
  2. Update WINE to v1.6
  3. Install PostgreSQL on Ubuntu
  4. Install VPOP3
  5. Manually configure VPOP3 to take account of the missing features in WINE and Linux security
  6. Run VPOP3, test and configure

Install Ubuntu Desktop

VPOP3 does not really need any desktop features, but VPOP3 does have hidden windows, so WINE needs to have an X11 driver installed. For testing, the simplest way to achieve this was to install Ubuntu Desktop. Theoretically I could have installed Ubuntu Server, and then added an X11 driver, but my Linux knowledge is not that advanced yet.

I installed Ubuntu Desktop 12.04 32 bit from here. It should work with the 64 bit version of Ubuntu, but this wasn’t tested. I used 12.04 because that is the current LTS version of Ubuntu, so it is what many people use for server type applications.

Update WINE to v1.6

The next step was to install WINE v1.6. I originally tried with the version of WINE that comes packaged with Ubuntu 12.04 – WINE v1.4, but that failed miserably…

I used the instructions here to get the v1.6 package of WINE for Ubuntu. I used the command prompt, so I opened a terminal window, and typed

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.6

This installed WINE v1.6 on the Ubuntu PC. The latest development version of WINE is 1.7, but I went with the stable 1.6 version to see if that would work first.

Install PostgreSQL on Ubuntu

The VPOP3 installer includes an installation of PostgreSQL, but PostgreSQL works fine on Linux itself, and it seemed daft to run the Windows version via WINE, when the native Linux version will work better and just take a minute or two to set up

In a terminal window, type: sudo apt-get install postgresql

To get into the postgresql console, I then typed ‘sudo passwd postgres‘ and entered a new password for the ‘postgres’ user. Then, I typed su – postgres and entered the password to log in as that user. Then, I typed psql to access the postgresql console. Then, to set up the PostgreSQL user & database for VPOP3, I typed:

create user vpop3 login password ‘vpop3pass';
create database vpop3 owner vpop3 encoding ‘SQL_ASCII’ template template0;

Type exit to logout from the ‘postgres’ user.

Install VPOP3

Now, I need to install VPOP3. As I like a command prompt, I downloaded the current version (v6.6) by typing


(You may want to download a later version if one is available)

Alternatively, you could use a standard web browser to download the VPOP3 installer

To install the software, just type: wine vpop3_v66_2678.exe

You should see the familiar setup program, so go through the settings as normal, except make sure you uncheck the postgresql component when choosing components. Also, note that I unchecked the VPOP3 Antivirus option as I wanted to keep things simple for the test. That may work (I see no reason why it shouldn’t), but it was not tested here.

You should be asked for ‘Database Information’ since you are not using the standard PostgreSQL installation. Here, type in the Host Name box, and leave the other settings as their defaults (as below).

Note that during the installation, you may see lots of text in the command prompt. Usually this is hidden, so just ignore it.

At the end of the installation, uncheck the Start VPOP3 box – if you don’t, then it’s not a disaster, but VPOP3 will stop shortly after starting up

Manually configure VPOP3

WINE is not a complete implementation of the Windows API, so some features were missing, such as automatic detection of IP addresses. Also, in Linux there is a biggish problem which is that only the root user is allowed to bind to IP ports 1-1023. This means that when VPOP3 tries to bind to ports 25 (SMTP), 110 (POP3) etc, it is blocked from doing so. This will make VPOP3 fail to start.

To fix these problems we need to change some settings in the database.

At the command prompt, go to the .wine/drive_c/vpop3 folder. In WINE this is the same as the C:\VPOP3 folder in the ‘virtual Windows’ installation.

In that folder should be a file called DBCHANGES.DAT. If you accidentally started VPOP3, then file will have been renamed to DBCHANGES.1, so rename it back.

Now, edit that file – I prefer NANO, so I run nano dbchanges.dat

Near the bottom of this file will be lines saying things like:

INSERT INTO settings.settings (name,updateuser,value) VALUES(‘POP3ALLOWED.DAT’, ‘Installer’, ‘0\n1|0||1|0|’);

You need to edit all those lines, to remove the ‘1|0||1|0|’ from the setting value, so they say something like:

INSERT INTO settings.settings (name,updateuser,value) VALUES(‘POP3ALLOWED.DAT’, ‘Installer’, ‘0\n’);

This tells VPOP3 to allow connections from anywhere, rather than just from the local network. This is because VPOP3 cannot automatically detect the local network addresses when running in WINE. We MUST change this to a more appropriate setting once we can get into the settings.

Also, add a couple of lines saying

DELETE FROM settings.settings WHERE LOWER(name)=’mailhttpallowed2.dat';
INSERT INTO settings.settings (name,updateuser,value) VALUES(‘MAILHTTPALLOWED2.DAT’, ‘Installer’, ‘0\n’);

This allows administrator access from anywhere which has Webmail access.

Then, at the bottom of the file, add the lines

DELETE FROM settings.settings WHERE LOWER(name)=’\\service-0\\~bindings';
DELETE FROM settings.settings WHERE LOWER(name)=’\\service-1\\~bindings';
DELETE FROM settings.settings WHERE LOWER(name)=’\\service-5\\~bindings';
DELETE FROM settings.settings WHERE LOWER(name)=’\\service-9\\~bindings';
DELETE FROM settings.settings WHERE LOWER(name)=’\\service-10\\~bindings';
INSERT INTO settings.settings (name,value) VALUES(‘\\Service-0\\~Bindings’, ‘|8110′);
INSERT INTO settings.settings (name,value) VALUES(‘\\Service-1\\~Bindings’, ‘|8025′);
INSERT INTO settings.settings (name,value) VALUES(‘\\Service-5\\~Bindings’, ‘|8389′);
INSERT INTO settings.settings (name,value) VALUES(‘\\Service-9\\~Bindings’, ‘|8143′);
INSERT INTO settings.settings (name,value) VALUES(‘\\Service-10\\~Bindings’, ‘|8119′);
These settings changes tell VPOP3 to bind to ports 8000 above their normal ports, so SMTP is on port 8025 instead of port 25. This is a bit annoying, but we should be able to tell Linux to redirect them back later.

An alternative to doing this would be to run WINE as the root user, but everyone says that is a bad idea, so we won’t do that here.

Run VPOP3, test and configure

You can now start VPOP3 as a service, by running wine net start vpop3, and stop it by running wine net stop vpop3

If you want to run VPOP3 as an application instead (which can be more useful for problem solving), you can run wine c:/vpop3/vpop3, and to stop it run wine c:/vpop3/closevpop3

In some cases WINE can refuse to clean up resources after use, so stopping the WINE server totally can clean this up – run /usr/bin/wineserver -k

Once VPOP3 is running, you should be able to access the VPOP3 settings as usual (http://<ip address>:5108). During the configuration, we strongly recommend going to the various Services in the VPOP3 settings, and going to the IP Access Restrictions tab, and setting up restrictions as appropriate. This is especially important for the SMTP service – failure to do so could make your VPOP3 server into an open relay.

Extra information

When you are running VPOP3 in WINE, you may see text appear on the console beginning with fixme: – these are generally Windows API function calls which VPOP3 is using, but which WINE does not implement fully. In our testing we haven’t encountered any of these which cause VPOP3 a problem, but just remember that these aren’t issues with VPOP3…

Remember that is is not officially supported, and we just put it here for you to play with. We don’t recommend using it like this in a critical production environment. However, as VPOP3 stores all its data in PostgreSQL, which we are running as a native Linux program, that should be as safe as it would be on Windows, so even if VPOP3 under WINE crashes, you shouldn’t lose data. At the worst you would be able to run VPOP3 on a Windows PC, and have it connect to the Linux installation of PostgreSQL to see the data.

Port redirection

VPOP3, as set up above, will provide POP3, SMTP and IMAP4 (in VPOP3 Enterprise) services on ports 8110, 8025, and 8143 respectively. While it is certainly possible to use it like this, it can be a bit annoying since you will need to reconfigure each email client to use these non-standard ports. Also, incoming SMTP won’t work unless port 25 is redirected to reach VPOP3 on port 8025.

It should be possible to use IPTABLES to redirect the ports to VPOP3, however this isn’t something we’ve done yet – user comments are welcome, otherwise we will come back to revisit this later.

Read more »

Advanced Backups for VPOP3
Posted by Paul Smith on 05 November 2013 05:36 PM

As everyone knows, backups are very important, especially with an important piece of software such as a mail server.

With VPOP3 v5 and later, VPOP3 will automatically make a backup of its database every day. The database in v5 and later contains all the settings, users, messages, etc, so is essentially a full backup and can be used to restore a server in the same state as it was at the time of the backup.

The database backup settings in VPOP3 are set in Settings -> Database -> Backup.

VPOP3 uses the standard PostgreSQL backup program called pg_dump to create the backups. There are altnerative ways to backup a PostgreSQL database, but this is often the most appropriate and safest for people who aren’t database experts.

The default backup behaviour is to make a full backup into the VPOP3 installation directory every day, and cycle on a weekly basis. You will probably have noticed big files called ‘DBBACK-n.DMP’ in the VPOP3 folder. These are the backup files. It can be a good idea to tell VPOP3 to store these files elsewhere, so that (a) they don’t fill up the VPOP3 disk, and (b) if the VPOP3 disk fails, you don’t lose your backups as well. This article in our Wiki tells you how to store the backups elsewhere or change the backup rotation cycle.

The backups can be big, but because hard disk space is cheap nowadays, it is usually worth making these backups. Storing them on a USB hard drive is often a simple solution to disk space issues.

Offsite Backups & Compression

One important thing to note is that, by default, the backups are compressed. Locally this can be a good thing. However, if you are storing the backups offsite using some cloud-based backup solution, it will usually mean that the entire backup has to be uploaded every day, which may not be practical. This is because file compression will usually defeat any ‘delta backup’ system – a single byte change in the original data file may cause the majority of the compressed file to be different.

So, one workaround is to tell VPOP3 not to compress the backups. This is set in the Backup Command Options setting in the database backup settings. The ‘-F c‘ option tells the pg_dump program to create a ‘custom’ format output file which is compressed by default. If you add the options ‘-Z 0‘, this will tell pg_dump not to compress the output file.  This will make the backup file a lot bigger (typically about 2-3 times the size), but, because it is not compressed, delta backup systems should be able to detect changes in it much easier, so offsite backup uploads may be much smaller.

If the backup file is too big to be handled in one chunk, you could try changing the backup options to ‘-F d -Z 0‘. This tells pg_dump to put the backup into a directory with one file per table, rather than a single file for the entire backup. This may be even easier for a delta backup system to handle.

Volume Snapshot Service (VSS)

If your third party backup program supports VSS, then you can just backup the entire VPOP3 directory (and all subdirectories) as it is, without needing to backup the DBBACK-n.DMP files. Note that if you do this, the backup acts as if the PC has been powered off without shutting down properly. PostgreSQL will automatically run a database recovery when it restarts after restoring the backup, but it is worth testing this before relying on it.

Note that if your backup program does NOT use VSS, then backing up the entire VPOP3 directory will NOT produce a usable backup. In that case you will need the DBBACK-n.DMP files to be able to restore a working installation.


An alternative backup system advanced users may want to try is to use RDIFF to generate local ‘delta’ backups. RDIFF is a Linux program, but you can get versions ported to Windows – eg from

Change the backup command options to ‘-F c -Z 0′ to create an uncompressed backup

Making a base backup

Now, make an uncompressed base backup. Keep this backup safe as you will need it to be able to recreate later backups from the deltas. For the sake of the following instructions, we’ll assume you’ve called this base backup ‘database.dmp

Next, you need to make an RDIFF signature file

rdiff signature database.dmp database.sig

Depending on the size of the base backup, this may take a while. This command will create a file called database.sig which is used for generating deltas in the future (you don’t have to keep the base backup on the server to generate deltas).

Once this is finished, you can move the base backup (database.dmp) to a safe location, and leave the signature file (database.sig) on the server

Making deltas of daily backups

The next day, when you have created a new backup, called ‘’, you need to create a delta file using the previous signature file

rdiff delta database.sig

Now, you just need to keep the ‘’ file safe, and the file can be deleted.

You can continue to do this every day. This is like a differential backup where you need the base backup and the latest delta file to be able to recreate the latest backup file. Over time the delta file will grow in size, and you may want to periodically create a new base backup & signature file

VPOP3 has an option to run a command after the backup has completed, so you could use a couple of batch files to do this delta process automatically (you need two batch files because the operation may take longer than the normal timeout, so you need one batch file to launch the second one as a background task)

Batch file 1 (launchdelta.cmd)

start cmd /c dodelta.cmd %1

Batch file 2 (dodelta.cmd)

rdiff delta database.sig %1
rem This batch file can also copy the delta elsewhere

Set the ‘command to run after backup’ in VPOP3 to cmd /c launchdelta.cmd %f

Note that the above batch files assume that VPOP3 stores its backups into a location where the VPOP3 service has permission to read/write files – it will not work if the Target File Network Username/Password options are used.

Database recovery

To recreate the latest backup as, take the base backup (database.dmp) and latest delta file ( and use the command

rdiff patch database.dmp

(Note that the signature file is not needed to perform this command)

You can then use the file in the normal VPOP3 database restore instructions


Note that the RDIFF delta and patch commands may take a long time depending on the size of the files. Using this option is a compromise to save disk space at the expense of time. For most people, they will want to recover the server as quickly as possible, so a bit of money spent on extra disk storage will be the preferred option.


Read more »

VPOP3 v6.3 – GeoIP access restrictions
Posted by Paul Smith on 10 September 2013 01:32 PM

One of the new features in VPOP3 v6.3 was the support for ‘GeoIP’ in the Access Restrictions settings. This lets you specify that only IP addresses from certain countries can access VPOP3 services. Many people use this type of restriction to prevent access from countries commonly used by attackers.

In fact, the VPOP3 GeoIP facility isn’t limited to GeoIP data. Essentially it has a database which matches IP address ranges to a ‘tag’ and then you can check against the tags. A common use would be GeoIP – the tags would be country codes – but it could be used for other things as well. As the database is queried live, you could even update the database dynamically and have VPOP3 update its access restrictions automatically.

GeoIP database

However, a common use is GeoIP, so that is what this article will describe.

Installing GeoIP data

The first thing is that VPOP3 does not include any GeoIP data. This is partly due to licensing restrictions of such data, and also because it often changes, and there are different sources.

So, to use the GeoIP facility, you need to obtain GeoIP data and import it into VPOP3.

One free GeoIP database source is [[|GeoLite from Maxmind]], so that is what this article will use. You need to decide what sort of data you will be checking against. For this example we will use the GeoLite Country database. You can also check against cities, or ASNs (essentially checking against Internet providers’ ranges).

For these steps you need the CSV database, so to download the GeoLite Country database, go to At the bottom is a Downloads section, click on the Download link in the “CSV/zip” column for GeoLine Country. This file is about 1MB. Extract the CSV file from there to a temporary location (eg c:\temp).

If you want, you can open up this file to see what it contains. It will easily open in a text editor, or a spreadsheet program. Each line contains 6 columns. The first two are an IP address range – eg “” to “”. The second two columns are the same data but as a 32 bit integer rather than dotted IP addresses (it isn’t significant how these are calculated as we are going to ignore these). The fifth column contains the ISO country code for the country in question, eg ‘AU’ for Australia, or ‘GB’ for the United Kingdom. The sixth (last) column contains the name of the country/region, eg ‘Germany’ or ‘Russian Federation’. For our purposes we’ll be using the first two and fifth columns so we can link the IP address range to the country code.

What we need to do is import this data into the VPOP3 database.

We have a tool you can download to import the data. It’s called VPOP3GeoImport and it is run from a command prompt. To use it, download the file and extract into the VPOP3 installation directory. Then, from a command prompt run it as:

VPOP3GeoImport [options] importcsv <filename> 125

Normally you won’t need any options, but if you run “VPOP3GeoImport -?”, you will get a list of options available. (The ‘125’ at the end tells the program which columns to import).

This program will delete all existing data in the GeoIP database within VPOP3. Note that you do not need to stop VPOP3 while you perform this operation.

Using the GeoIP data

To use the GeoIP data, in the relevant VPOP3 Access Restrictions settings, select the GeoIP Lookup type in your access restriction, and enter the desired ‘tags’ in the Address box. In the case of the above country GeoIP data, the tags would be ISO country codes, eg US, GB, etc. To specify multiple tags to look for, you can separate them with commas or semicolons.



The GeoIP data is stored in a database table called geoipv4. This has 4 columns:

  • id – numeric primary key, assigned by the database
  • addrfrom – IP address at the start of the range
  • addrto – IP address at the end of the range
  • result – the data to be retrieved if the searched IP address is within the range addrfrom <= address <= addrto

If multiple entries match the searched IP address, then each result will be checked against the specified access restrictions.


Read more »

Command line access to VPOP3 settings
Posted by Paul Smith on 26 April 2013 07:49 AM

In VPOP3 v5 and later, all the settings are stored in the main database. While this makes it easier to backup, migrate and use database replication, it does make it a bit harder to access settings from outside of VPOP3.

You can use the ‘psql‘ command-line program, or a graphical tool like pgAdmin to access the settings.settings table to update the settings, but for many people this is inconvenient, and possibly a bit daunting.

So, we have made a little command-line utility called ‘vpop3settings’ which you can use to read/change settings from outside VPOP3. This can be used in an emergency, or possibly from a batch file or other scripting language, or whenever.

Using VPOP3Settings

To use this, download the vpop3settings program and extract the ZIP file to the desired location. It does not have to be in the main VPOP3 directory, but that can be a convenient location. You could even use it on a different computer, but this would need some settings changes to PostgreSQL on the VPOP3 PC. Note that you will also need the .NET runtime on the computer.

Then, you can run the program from a command prompt.

Running it as vpop3settings -? will give you a usage summary

USE: vpop3settings [options] <COMMAND> <PARAMETERS>
Options are:
 -h <VPOP3 PostgreSQL server address> (default
 -p <VPOP3 PostgreSQL server port> (default 5433)
 -u <VPOP3 PostgreSQL username> (default vpop3)
 -w <VPOP3 PostgreSQL password> (default vpop3pass
 -d <VPOP3 PostgreSQL database> (default vpop3)
 -q ( don't display header )
Commands are:
 GET <setting name>
 GETDATA <setting name> ( get data only )
 SET <setting name> <setting data>
 SEARCH <data substring>
 REPLACEPATHS <old path> <new path>

If you are using the command on a standard installation, on the VPOP3 computer itself, you will not usually need any of the first set of options, but if you are accessing the VPOP3 computer over a network, or have a non-standard installation, you can use the first few options to tell vpop3settings how to access the database

Then, the various commands are


The GET command will retrieve one or more settings. You can use * and ? wildcards in the parameter. Note that the setting name parameter is backslash quoted. So, for instance, if you want to use \ you need to double it to \\.


vpop3settings.exe GET \\Service-9\\*
Settings command line tool for VPOP3 v1.0- (c) 2013 Paul Smith Computer Services
\Service-9\~Name:IMAP4 Server

The response contains each matching setting on a line, with the name, followed by a colon, followed by the data. The data is backslash quoted as well – so a line break will be returned as ‘\n’, etc


This command is the same as GET, but the response only contains the data, not the setting name. This is not very useful if used with wildcards, but can be useful if you want a script or something to read a setting.


This command lets you set a setting. The setting name parameter does not support wildcards, and is not backslash quoted, but the setting value parameter IS backslash quoted, to allow you to set line breaks etc in the data. For instance:

vpop3settings.exe set \~standardsig "\n\nThis was me"


This command lets you search the setting values for a certain value. Wildcards are allowed, and backslash quoting is used. For instance:

vpop3settings.exe search ?:\\*

will search for settings which contain likely file paths


This is a useful command when moving VPOP3. It will search the settings for values starting with the ‘oldpath’ setting, and offer to change them to begin with the ‘newpath’ value. Don’t use wildcards or backslash quoting in the parameters here. For instance:

vpop3settings.exe replacepaths c:\vpop3 d:\vpop3


This is exactly equivalent to GET *


After making changes

Note that VPOP3 monitors for changes in the settings tables, so in most cases, if you change a setting in the settings.settings table, it will take effect immediately, without needing a restart of VPOP3. In a few cases (e.g. when adding a new setting, rather than updating a setting) you may need to restart VPOP3.

Read more »