VPopMailversion: 5.6.9- github: sagredo-dev/vpopmail
- Download
- Changelog
- README.vdelivermail
- Inter7's original page
Vpopmail provides an easy way to manage virtual email domains and non /etc/passwd email accounts on your mail servers.
Changelog
- Sep 1, 2025 (v. 5.6.9)
- added -std=gnu17 to gain compatibility with gcc-15 (PR #6)
- pw_clear_passwd field enlarged to varchar(128) to create room for long passwords (tx Ricardo Brisighelli) c54688d - Mar 29, 2025 (v5.6.8)
defaultdelivery feature (--enable-defaultdelivery) changes (more info here, commit):vdelivermailis installed by default in .qmail-default of newly created domains with option 'delete' as in the previous version.- if no user's valiases and no .qmail are found, then the message is sent to the control/defaultdelivery file, so that
dovecot-lda(or whatelse) can execute the sieve rules and finally store the message into inbox. - if vdelivermail is found in control/defaultdelivery, then it is ignored to avoid loops. The delivery is done by
vdelivermail - v. 5.6.8 is backward compatible. The users having .qmail from previous versions of the defauldelivery feature are not affected by this change.
- Mar 23, 2025 (v. 5.6.7)
- bug fix in vpopmaild.c: Crypted[64] enlarged to Crypted[128] to make room for SHA-512 passwords. This restores the usability of the RoundCube's 'password' plugin (commit)
- fixed quota calculation in sql procedures for dovecot (tx Hakan Cakiroglu) (commit)
- minor changes to the usage function of vmakedotqmail.c (commit) - Feb 9, 2025 (v. 5.6.5)
- added pwd strength check also for vadduser.c
- removed-std=c99 -D_XOPEN_SOURCE=500arguments fromCFLAGSin configure.ac to makeclanghappy
- several changes to compile onFreeBSD clangv. 18.1.6 - Dec 20, 2024 (v 5.6.4)
- Password strength enforcement (PR #5, grabbed from Matt Brookings' 5.5.0-dev version)
- Dropped min pwd length feature.
- vmysql.h: tables' layout changed in order to have VARCHAR instead of CHAR. Fields containing ip addresses enlarged to VARCHAR(39), to create room for ipv6. Unix timestamps definition changed from BIGINT(20) to INT(11). (commit 44bad58) Have a look to the upgrade notes below. - Oct 14, 2024 (v. 5.6.2)
- fixed a configure break where a trivial C test program exits on error with gcc-14.1 due to missing headers
- vusaged/domain.c: fixed -Wimplicit-function-declaration compilation warning
- vmysql.h: dropped the multicolumn PRIMARY KEY in valias table to allow multiple forwards for a given alias.
In case one already has the valias table defined, this is the sql query for the upgrade:
ALTER TABLE `vpopmail`.`valias` DROP PRIMARY KEY, ADD INDEX (`alias`, `domain`, `valias_type`) USING BTREE;
ALTER TABLE `vpopmail`.`valias` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
Program changes made by me
The vpopmail-5.6.x code has been modified by several people, in particular by TLK games who started the project in 2022 adding all existing patches arouund the net, mine included. Unfortunately that project appears to be abandoned, so I decided to continue on my own fork.
I made latest vpopmail gcc and clang compliant and (among the other things) added the following features:
- sql-aliasdomains, which makes
vpopmailsave the aliasdomains toMySQL. This makes thedovecotsql auth driver aware of the aliasdomains, provided that you modify the sql query as well (see thedovecotpage for more info). - defaultdelivery feature:
vdelivermailis installed by default in .qmail-default of newly created domains with option 'delete'. If no user's valiases and no .qmail are found, then the message is sent to the control/defaultdelivery file, so thatdovecot-lda(or whatelse) can store the mail into inbox and execute the sieve rules. if vdelivermail is found in control/defaultdelivery, then it is ignored to avoid loops. The delivery remains in charge to .qmail-default, i.e.vdelivermail.
More info here, have also a look to the doc/README.defaultdelivery file. - dovecot-sql-procedures patch
If you want to use thedovecot's sql auth driver with one table for each domain (--disable-many-domains) you have to heavily customize your queries to the sql database. With this patchvpopmailinstalls the sql procedures and functions in the database when you create a new domain. The procedures can be called bydovecotto perform the auth.
The sql stuff supports aliasdomains andmysqllimits and will be loaded from ~/vpopmail/etc/disable-many-domains_procedures.sql. You can customize the sql procedure editing this file.
You have to configure with--enable-mysql-bin=PATHas we have to install the procedures calling themysqlbin as a shell command (no way to load an sql query from a file in C language, comments welcome). - the MySQL database schema has been revised switching all
charcolumns tovarchar - s/qmail cdb patch This patch, which gets
vpopmailto locate correctly theqmailassign.cdb fors/qmailusers, it's not used anymore because it was replaced by a similar patch, wheres/qmailusers should compilevpopmailwith--enable-qmail-cdb-name=assign.cdb - recipient check patch. It can be used with Erwin Hoffmann's s/qmail to accomplish the recipient check. Not important in my installation, look at doc/README.vrcptcheck for more info.
- A fix to the following issues (patch by Ali Erturk TURKER):
- vdelivermail.c checks spamassassin permissions, instead of maildrop permissions.
-vopen_smtp_relay()return values corrected, so thatopen_smtp_relay()can detect and report database connection errors (vmysql.c, voracle.pc, vpgsql.c)
-vdel_limits()core-dumps if a database connection is not available beforehand. (vmysql.c, voracle.pc)
Upgrading to v. 5.6.x
When upgrading from version 5.4.33 to version 5.6.x, if you have the accounts on SQL, you should enlarge the vpopmail.pw_passwd column size, as the default password encryption is SHA512, which is longer than the old MD5; you can disable SHA512 pwd with --disable-sha512-passwords at configure time. The default dimension for the vpopmail.pw_passwd column is now 128.
Here is the SQL query to upgrade the vpopmail table:
ALTER TABLE `vpopmail` CHANGE `pw_passwd` `pw_passwd` VARCHAR(128) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
Upgrading from version 5.6.3 to 5.6.4
Several other non breaking changes have been made to theMySQL tables' layout. Here is how you can quickly alter the tables (inlcluded the change mentioned above):/* vpopmail */
ALTER TABLE `vpopmail` CHANGE `pw_name` `pw_name` VARCHAR(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `vpopmail` CHANGE `pw_domain` `pw_domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `vpopmail` CHANGE `pw_passwd` `pw_passwd` VARCHAR(128) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `vpopmail` CHANGE `pw_gecos` `pw_gecos` VARCHAR(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `vpopmail` CHANGE `pw_dir` `pw_dir` VARCHAR(160) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `vpopmail` CHANGE `pw_shell` `pw_shell` VARCHAR(20) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
/* vlog */
ALTER TABLE `vlog` CHANGE `user` `user` VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `vlog` CHANGE `passwd` `passwd` VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `vlog` CHANGE `domain` `domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;
ALTER TABLE `vlog` CHANGE `remoteip` `remoteip` VARCHAR(39) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `vlog` CHANGE `error` `error` TINYINT(1) NULL DEFAULT NULL;
ALTER TABLE `vlog` CHANGE `timestamp` `timestamp` INT NOT NULL DEFAULT '0';
/* lastauth */
ALTER TABLE `lastauth` CHANGE `user` `user` VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `lastauth` CHANGE `domain` `domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `lastauth` CHANGE `remote_ip` `remote_ip` VARCHAR(39) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `lastauth` CHANGE `timestamp` `timestamp` INT NOT NULL DEFAULT '0';
/* limits */
ALTER TABLE `limits` CHANGE `domain` `domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
/* alias */
ALTER TABLE `valias` CHANGE `alias` `alias` VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `valias` CHANGE `domain` `domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
/* dir_control */
ALTER TABLE `dir_control` CHANGE `domain` `domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
/* aliasdomains */
ALTER TABLE `aliasdomains` CHANGE `alias` `alias` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `aliasdomains` CHANGE `domain` `domain` VARCHAR(96) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
Setup
Create the vpopmail user and group. Be aware that the home directory below is going to be the one where vpopmail will be installed, so you can change it if you want to have vpopmail elsewhere. You can also decide to assign different uid/gid to vpopmail, as qmail will be able to determine them dinamically.
groupadd -g 89 vchkpw useradd -m -g vchkpw -u 89 -d /home/vpopmail vpopmail
In the following configure command you may have to replace --enable-incdir=/usr/include/mysql with --enable-incdir=/usr/include/mariadb or whatelse, depending on the location where your system installed the library and its headers.
VPOPMAIL_VERSION=5.6.9
wget https://github.com/sagredo-dev/vpopmail/archive/refs/tags/v${VPOPMAIL_VERSION}.tar.gz
tar xzf v${VPOPMAIL_VERSION}.tar.gz
cd vpopmail-${VPOPMAIL_VERSION}
chown -R root:root .
# freebsd users may have to issue an 'autoreconf -f -i' here
./configure \
--enable-qmaildir=/var/qmail/ \
--enable-qmail-newu=/var/qmail/bin/qmail-newu \
--enable-qmail-inject=/var/qmail/bin/qmail-inject \
--enable-qmail-newmrh=/var/qmail/bin/qmail-newmrh \
--disable-roaming-users \
--enable-auth-module=mysql \
--enable-incdir=/usr/include/mysql \
--enable-libdir=/usr/lib64 \
--enable-logging=e \
--disable-clear-passwd \
--enable-auth-logging \
--enable-sql-logging \
--disable-passwd \
--enable-qmail-ext \
--enable-learn-passwords \
--enable-mysql-limits \
--enable-valias \
--enable-sql-aliasdomains \
--enable-defaultdelivery
--disable-roaming-users roaming users will be disabled, since we don't want to use POP before SMTP authorization. We will patch qmail with smtp-authentication instead.
--enable-auth-module=mysql builds MySQL support and stores virtual users accounts into a mysql database.
--enable-incdir=/usr/include/mysql Your MySQL include dir (use just in case you installed mysql from binaries or source in a non standard location. Mount mysql dir somewhere if it is installed in a different machine).
--enable-libdir=/usr/lib64 Your MySQL lib dir. Obviously it might be /usr/lib on 32b systems
--disable-passwd Don't include /etc/passwd support. I don't want to manage real users, this is just a web server.
--disable-clear-passwd Clear password will not be saved to database for security reasons. If you don't want to have problems when users forget their passwords and you want to recover them quickly switch this to --enable-clear-passwd.
--enable-logging=e Logs failed attempts on syslog (no failed passwords will be shown).
--enable-sql-logging Maintain the vlog table in MySQL (shows failed authentication requests).
--enable-auth-logging Maintain a lastauth table in MySQL (shows when / how a user last accessed their email)
--enable-mysql-limits MySQL stores domain limits instead of .qmailadmin-limits files.
--enable-qmail-ext Enable qmail email address extension support (emails containing dots).
--enable-sql-aliasdomains (default) saves domain aliases to MySQL in order to validate the authentication for domain aliases when using the dovecot's sql driver, provided that you modify the password_query accordingly.
--enable-valias Store aliases in MySQL
--enable-defaultdelivery send the email to control/defaultdelivery after checking the user's virtual aliases and .qmail files respectively. control/defaultdelivery can run dovecot-lda to execute the sieve rules and finally store the message into inbox. More info here.
s/qmail users should add --enable-qmail-cdb-name=assign.cdb as the users/assign file is compiled as assign.cdb and not as cdb.
Compile and install:
make install-strip
vusaged
vusaged looks up every vpopmail user and tracks how much storage space they’re using. It requires libev.
Installing libev
We need to install the header files in /usr/local/include/libev to avoid conflicts with the libevent library (they both have an event.h header file), which is probably already installed.
cd /usr/local/src wget http://dist.schmorp.de/libev/libev-4.33.tar.gz tar xzvf libev-4.33.tar.gz cd libev-4.33 chown -R root:root . ./configure --includedir=/usr/local/include/libev make make install ldconfig
Installing and configuring vusaged
VPOPMAILDIR=/home/vpopmail
cd /usr/local/src/vpopmail-${VPOPMAIL_VERSION}/vusaged
LDFLAGS=-L/usr/local/lib CFLAGS=-I/usr/local/include/libev LIBS=`head -1 $VPOPMAILDIR/etc/lib_deps` \
./configure --with-vpopmail=$VPOPMAILDIR
make
cp -f vusaged ~vpopmail/bin
cp -f etc/vusaged.conf ~vpopmail/etc
Troubleshooting
If you get an error like this after the configure command
configure: error: No vauth_getpw in libvpopmail
try to rebuild the configure script in this way:
autoreconf -f -i
and then proceed to configure and compile. I patched the configure.ac to avoid the break. This is actually a work around. If you solve the library linking error let me know.
Take a look to the discussion in the comments, as Luca suggested a different solution, which didn't solve for me but that I'm suggesting above in this page.
Quota setup
You don't actually have to let vpopmail handle the quota warnings, as Dovecot can do it in a more efficient way. I'm leaving here this paragraph in case is still usefull to anyone.
Setup a quota warning that will be delivered to users when they are at 90% quota
# nano ~vpopmail/domains/.quotawarn.msg From: SomeCompany Postmaster <postmaster@yourdomain.com> Reply-To: postmaster@yourdomain.com To: SomeCompany User:; Subject: Mail quota warning Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit Your mailbox on the server is now more than 90% full. So that you can continue to receive mail, you need to remove some messages from your mailbox. If you require assistance with this, please contact our support department : email : support@yourdomain.com Tel : xx xxxx xx
chmod 600 ~vpopmail/domains/.quotawarn.msg chown vpopmail:vchkpw ~vpopmail/domains/.quotawarn.msg
Now adjust ~vpopmail/etc/vlimits.default. I use to limit the default user quota to 400MB (in bytes):
default_quota 419430400
Configuring mysql back end
Create the vpopmail user and database. Grant all privileges to the vpopmail user:
> mysql [-h mysql-IP] -u root -p CREATE USER 'vpopmail'@'mailserver-IP' IDENTIFIED BY 'vpopmailpwd'; GRANT USAGE ON * . * TO 'vpopmail'@'mailserver-IP' IDENTIFIED BY 'vpopmailpwd' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; CREATE DATABASE IF NOT EXISTS vpopmail; GRANT ALL PRIVILEGES ON `vpopmail` . * TO 'vpopmail'@'mailserver-IP';
Then quit out of MySQL and save the authentication information for the vpopmail account into the vpopmail.mysql config file:
echo "mysql-IP|0|vpopmail|vpopmailpwd|vpopmail" > ~vpopmail/etc/vpopmail.mysql
mysql-IP is the IP of the server which runs mysqld, and mailserver-IP is the IP address where qmail is running. Usually you can specify ‘localhost’ or 0.0.0.0 for both.
Creating virtual domains and virtual users
cd ~vpopmail/bin/
To add/delete a virtual domain
./vadddomain yourdomain.net [./vdeldomain yourdomain.net]
To add/delete a virtual user
./vadduser user@yourdomain.net [./vdeluser user@yourdomain.net]
To view information about user email accounts:
./vuserinfo user@yourdomain.net name: user passwd: xxxxxxxxxxxx clear passwd: xxxxxxxxx comment/gecos: Name Surname uid: 0 gid: 0 flags: 0 gecos: Name Surname limits: No user limits set. dir: /home/vpopmail/domains/yourdomain.net/user quota: 104857600S
These commands can be useful. But it will be much easier to manage domains and accounts when we install the vqadmin and qmailadmin web interfaces later.
You may be interested to take a look to this page concerning vpopmail testing.
Domain aliases when using the dovecot's sql auth driver
If you don't have domain aliases or this is a fresh installation you can skip this step.
If you already have domain aliases and want to switch to the dovecot's sql auth driver, don't forget to read carefully the page where the vpopmail/dovecot setup concerning domain aliases is explained, as you'll have to save your existing alias/domains pairs to MySQL.
In short, you can quickly save all your domain aliases to MySQL in this way
vsavealiasdomains -A
Type
vsavealiasdomains -h
for more options.
The database record will be saved by VPopMail for the new aliases that you will create from now on.
Password strength enforcement feature
Starting from version 5.6.4 we have a password strength enforcement feature, that I grabbed from the development version 5.5.0 that was never released. To find out how it works it is sufficient to read the documentation in the configuration file (do not rename it).
I think that this is a feature to be addressed to the end users or to the domain administrators, rather than to us server administrators. This is the reason why you may choose to disable it, leaving the default configuration as is. In fact, as you know, we already have cracklib securing the password strength on qmailadmin side. Or you can decide to enable this additional check if you want to secure the password change plugin shipped with the webmail (Roundcube has a password plugin).


Comments
VPOMAIL migration from version
Ricardo Buchalla Auada October 20, 2025 20:18 CET
Hi Roberto !
I opened this new thread, because the other one was solved. Thank you.
I have a platform that uses vpopmail 5.4.33 (the old stuff).
And I am migrating my whole system for an updated version.
I installed vpopmail 5.6.9 and it´s working fine, as per the other thread.
I pointed the new vpopmail to the old mysql database, that is running for the version 5.4.33, and tried to change the password of one of my accounts, for a testing matter.
What happens is that my old system does not undestand the codification and brings an auth error.
I haven´t yet adjusted the old mysql database for larger passwords, as explained in the page, because I´m affraid of "breaking" the old system that is a production one.
So, I wonder if:
1- the problem with the password for the new vpopmail not being compatible with the old system is just a matter of issuing the mysql commands for larger passwords, as you instructed in the page
2- if I do modify the old mysql with these commands, will it keep working normally for the old platform, or it might break.
I need the mysql database to be able to work for both platform, the old and the new one, because I cannot afford to reset all the passwords.
Thank you!
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL migration from version
Roberto Puzzanghera Ricardo Buchalla Auada October 20, 2025 21:09 CET
Hi Ricardo,
the problem ist that the new SHA-512 needs more space in the database field because it's longer
It doesn't break the old, as MD5 has enough room, but you'll have problems with the new one, unless you compile vpopmail disabling SHA-512 (I don't suggest to do so). In any case, you should backup the old database before the migration. Finally: do anything at your own risk! :-)
I don't understand the problem. If the new vpopmail works once you update your database schema, why you still need the old one? The new vpopmail is able to do the auth both with the old MD5 ($1$xxxxxx) and the new SHA-512 ($6$xxxxxx) hash. When a user changes his/her pwd, it will be automatically set in SHA-512
Reply | Permalink
Migration vmailmgr cdb to vpopmail
Thomas October 16, 2025 16:39 CET
Hello again,
today we have an very old qmail server with vmailmgr cdb files.
Is there any way to migrate >1.000 email users in about 50 domains to mysql based vpopmail?
Best regards,
Thomas
Reply | Permalink
Migration vmailmgr cdb to vpopmail
Roberto Puzzanghera Thomas October 16, 2025 20:09 CET
I'm not familiar with vmailmgr. In vmailmgr, cdb is the only driver or you can convert the database to mysql? If yes, it could be doable if you have the plain text pwd or if they are stored in a format compatible with the ones supported by vpopmail
Reply | Permalink
Migration vmailmgr cdb to vpopmail
Thomas Roberto Puzzanghera October 17, 2025 11:05 CET
I don't have any detailed information about that. As I understand it, vmailmgrd stores user and mailbox information and passwords in the CDB. Understandably, the users' plaintext passwords are not available.
Would it be conceivable to copy the hashes [md5-crypt] from the CDB to the MySQL database for vpopmail?
Would you be willing to look for a solution in exchange for payment? My only options are to migrate or stick with the old vmailmgrd.
Best regards,
Thomas
Reply | Permalink
Migration vmailmgr cdb to vpopmail
Roberto Puzzanghera Thomas October 17, 2025 12:10 CET
Hi Thomas, the fact that vmailmgr has the md5-crypt hash is a good news, as we can copy the crypted pwd as is, so I think there are chances to extract the data from its cdb file. Please contact me in private if you like by using the contact button in the header of this page.
Reply | Permalink
Migration vmailmgr cdb to vpopmail
Thomas Roberto Puzzanghera October 17, 2025 15:17 CET
Hi Roberto,
in meantime I have tested injecting md5-crypt hash from passwd.cdb file into mysql database for an existing user. After that user login works fine, so we don't need clear passwords.
I'll contact you next week with a sample cdb file from vmailmgrd. My test with your vconvert program unfortunately doesn't work (it only cleans existing user from database but not more)
Regards,
Thomas
Reply | Permalink
Migration vmailmgr cdb to vpopmail
Roberto Puzzanghera Thomas October 17, 2025 16:49 CET
vpopmail vconvert is intended for vpopmail's cdb files
Reply | Permalink
Vpopmail clear password error
Ricardo Brisighelli September 1, 2025 12:34 CET
Hello, I am migrating a qmail that used authentication with the vpasswd file to a new configuration with SQL authentication. I compiled vpopmail with the --enable-clear-passwd flag. The problem is that the pw_passwd database field is 128 characters long, while pw_clear_passwd is 16. When I add accounts with passwords longer than 16 characters, it gives an error.
I made two patches to fix this for MySQL and Postgres, in which I changed the size of pw_clear_passwd to the same length as pw_passwd.
Regards
To apply :
*Copy this lines into vpopmail-clear-passwd-postgres.patch
*Copy this lines into vpopmail-clear-passwd-mysql.patch
Reply | Permalink
Vpopmail clear password error
Roberto Puzzanghera Ricardo Brisighelli September 1, 2025 13:16 CET
Thank you. Corrected in v5.6.9
Reply | Permalink
VPOMAIL issue
Ricardo Auada August 15, 2025 23:01 CET
Hello Roberto !
I am facing an issue with vpopmail. It´s a new installation and compiling, everyhing else is smooth.
When I do vadddomain yourdomain.net, I get the following messages, after inputing the password:
Could you help me find out what could be the reason for these errors ?
Thank you very much for your great job keeping this page uptodate.
Best regards from Brazil,
--
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada August 16, 2025 03:07 CET
Hello Ricardo,
I cannot reproduce the issue. Which version? Which configure options?
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera August 18, 2025 16:25 CET
Complementing:
This is the message at the end of the configure command:
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera August 18, 2025 16:14 CET
Sorry, forgot to mention the version: vpopmail-5.6.8
Regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera August 18, 2025 16:11 CET
Hi Roberto !
Thank you for the reply.
The compilation directives were:
Best regards.
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada August 18, 2025 16:28 CET
any error during the compilation process?
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera August 27, 2025 19:40 CET
No errors
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada August 28, 2025 08:48 CET
I had a look at the code. I think that the error is caused when the domain directory hasn't been created for some reason. Can you check that it doesn't exist? Check that the vpopmail/domains dir has the vpopmail ownership.
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 9, 2025 19:25 CET
Hello Roberto !
Thank you for the response.
I´ve checked and the directory seems ok and the new directory is being created regularly:
Any other idea ?
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 9, 2025 19:52 CET
if you ran those commands in the order shown, you should manually delete yourdomain.net dir before creating the domain
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 9, 2025 20:17 CET
Hi Roberto, my mistake. The order is inverted. The directory was created by the vadddomain command itself.
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 9, 2025 20:22 CET
can you do
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 9, 2025 20:57 CET
Hi Roberto!
Follow below the return for the commands:
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 9, 2025 21:16 CET
Can you check if the domain has been added to control/virtualdomains and to users/assign? Check also the date and time of assign.cdb
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 9, 2025 21:43 CET
Hello Roberto !
Yes, virtualdomains and users/assign are correctly populated with the domain.
Follows the assign.cdb date:
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 10, 2025 09:50 CET
Can you check that, once you have deleted the domain with vdeldomain, the records in virtualdomains, users/assign and also in mysql database have been deleted?
PS can you do
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 10, 2025 18:29 CET
Hi Roberto !
Thank you for the reply.
When I try do vdeldomain it brings this error:
The domain still exists at virtualdomains and assign files.
The return of the commands:
The database might be the issue:
I don´t know why, but it seems to not be adding anything to the DB. I have added other domains to test, and none shows there.
What could that be ?
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 10, 2025 18:38 CET
can you delete the line containing the domain in virtualdomains and in users/assign? then manually compile users/assign by running
Then check that the cdb file has been updated and try again to create the domain
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 10, 2025 20:35 CET
Hi Roberto !
I did remove the domain from the virutaldomains and assign files.
Ran /var/qmail/bin/qmail-newu
The assign.cdb was updated.
But the vadddomain command returned the same error:
Nothing was created in the database. Do you think this could play a role on the problem?
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 10, 2025 20:41 CET
Absolutely yes! Test the vpopmail database credentials from the mysql prompt. Then try to test
If you can query the database, delete the domain from virtualdomains and assign. Then retry
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 10, 2025 22:02 CET
Hi Roberto !
I can access the database and do the commands:
But still not working.
Please, check my vpopmail.mysql file entries:
Is there any error with it ? Is there any write test you suggest ?
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 11, 2025 07:57 CET
It appears that your qmail and mariadb servers live in different hosts.
Have you tried testing by connecting this way from the qmail server?
First of all, use one single line in your vpopmail.mysql
Then try to connect to mysql as vpopmail from the qmail server command line as shown above. Once you are logged in, try to write a record in the vpopmail database, for example
If it fails, the vpopmail account doesn't have write privileges in the vpopmail database
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 11, 2025 19:57 CET
Hello Roberto !
Thank you very much for your response.
The connection and permission to the DB server looks ok:
Weird, no ?
Regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 11, 2025 21:01 CET
Actually it's something that we should have expected, as it's refusing to add the postmaster user due to the fact that the domain doesn’t exists .
But the domain exists on qmail side... Can you check if vpopmail is creating the domain dir in vpopmail/domains? If no, check the dir privileges
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 11, 2025 23:48 CET
Hi Roberto !
If you feel like accessing my box, I can send you the credentials. Just send me an email and I´ll write back to you.
These 2 boxes (qmail and mariadb) have no production information, so no problems with privacy.
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Ricardo Auada Roberto Puzzanghera September 11, 2025 22:33 CET
Hello Roberto !
It is creating normally:
Best regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Ricardo Auada September 12, 2025 11:44 CET
can you clean virtualdomains, users/assign, recompile it with qmail-newu, delete the domain dir and then
strace -f -s 1024 -o /tmp/vadddomain_strace.log vadddomain test.comsend me the log file in private using the contact button above
Reply | Permalink
VPOMAIL issue
Thomas Roberto Puzzanghera October 16, 2025 10:51 CET
Hi Robert,
I have the same issue with vpopmail 5.6.9
Every step above I have already checked and all results are same as Ricardo reported.
If I have a look at program trace log I see
My libmariadb.so.3 is located at /usr/lib64/libmariadb.so.3 (CentOS 10)
Any suggestions?
Best regards,
Thomas
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Thomas October 16, 2025 12:47 CET
Hi Thomas, you have to recompile vpopmail against mariadb.
Ricardo had a pretty similar issue where mariadb was installed remotely and the library was not found locally
Reply | Permalink
VPOMAIL issue
Thomas Roberto Puzzanghera October 16, 2025 14:34 CET
Hi Roberto,
I've decided to remove mariadb and install mysql. OK, installed and vpopmail newly compiled.
But the same issue.
Is this a problem --> /usr/lib64/mysql/glibc-hwcaps/x86-64-v3/libmysqlclient.so.24", O_RDONLY|O_CLOEXEC) = -1 ENOENT (file not found) ?
I have no directory /usr/lib64/mysql/glibc-hwcaps/x86-64-v3/
Regards,
Thomas
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Thomas October 16, 2025 14:47 CET
No errors during compilation?
It's not sure that the above not found library is crucial or not, as it is seeks all possible locations.
Can you do
Reply | Permalink
VPOMAIL issue
Thomas Roberto Puzzanghera October 16, 2025 14:52 CET
I think, that's also fine:
All files and directories will be written as expected but no entry in mysql database (manually test was ok)
Regards,
Thomas
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera Thomas October 16, 2025 15:16 CET
Can you do the strace again? Post the section where it's looking for the mysql library
Reply | Permalink
VPOMAIL issue
Thomas Roberto Puzzanghera October 16, 2025 15:36 CET
Problem found!
I came from s/qmail and forgot option --enable-qmail-cdb-name=assign.cdb
After recompiling with this option it works.
Thank you for your support.
Best regards,
Thomas
Reply | Permalink
VPOMAIL issue
RICARDO BUCHALLA AUADA Thomas October 16, 2025 16:34 CET
Hello Roberto and Thomas !
I hadn´t still fixed the issue. I was going to try a whole new install.
Amazing ! It worked as well for me. I also come from sqmail.
Roberto, maybe, if you find it valuable, have this in the documentation, for people who come from sqmail.
Great day !
Regards,
Ricardo Auada
Reply | Permalink
VPOMAIL issue
Roberto Puzzanghera RICARDO BUCHALLA AUADA October 16, 2025 17:29 CET
Hi Ricardo, it's already reported among the features of this vpopmail distribution
Reply | Permalink
--enable-qmail-ext handling differs from qmail
Teodor February 8, 2025 14:24 CET
Hi,
It seems your fork of vpopmail is the most actively developed one, so I'm reporting an issue I noticed.
When compiled with `--enable-qmail-ext`, vpopmail is expected to behave like qmail and treat '-' delimited addresses as subaddresses. However, vpopmail's implementation is simpler—it handles everything after the first '-' as an extension.
For example, given an address like `name-surname-work@example.com`:
- Qmail would check for `.qmail-name-surname-work`, then `.qmail-name-surname`, then `.qmail-name`, and finally `.qmail-default`.
- Vpopmail, however, only checks `.qmail-name-surname-work`, then `.qmail-name`, and then `.qmail-default`.
This behavior is even noted in `vdelivermail.c`:
For instance, if you have .qmail-no-reply with forwarding instructions (e.g., &role@another.com), sending an email to no-reply-office would behave differently:
Qmail follows no-reply-office → no-reply → no → default and executes the forward correctly.
Vpopmail follows no-reply-office → no → default, leading to a bounce.
In my opinion, it would be best to match qmail's behavior, following the principle of least astonishment. :)
Reply | Permalink
--enable-qmail-ext handling differs from qmail
Roberto Puzzanghera Teodor February 8, 2025 15:26 CET
I agree with you. I'm writing a memo to myself among the many things to do :-)
Reply | Permalink
--enable-qmail-ext handling differs from qmail
Teodor Roberto Puzzanghera February 9, 2025 09:13 CET
So, I tried to decipher how it works more toroughly, and here's some pseudocode and flowchart: https://gist.github.com/z-image/4e29da1f01e040da80f2edd1c7e63b4f
Reply | Permalink
--enable-qmail-ext handling differs from qmail
Roberto Puzzanghera Teodor February 9, 2025 10:00 CET
Thank you! I'll check it out
Reply | Permalink
5.5.0 branch lives on!
Matt Brookings February 1, 2025 01:19 CET
Pretty cool to see someone continuing the 5.5.0 work, and keeping it alive!
Reply | Permalink
5.5.0 branch lives on!
Roberto Puzzanghera Matt Brookings February 1, 2025 08:06 CET
Hi Matt, I'm glad to hear that you are happy with that!
you can see it's a project which puts together patches and features from many people.
If you have a look at my github space you can see that the main branch still holds the git attribution history, included all your historical commits
Reply | Permalink
vadddomain error
Shailendra Shukla October 18, 2024 17:03 CET
Hi ,
I am getting error while adding domain to vpopmail.
Can you guide me in the right direction what could be going wrong.
Regards
Shailendra
Reply | Permalink
vadddomain error
Roberto Puzzanghera Shailendra Shukla October 19, 2024 08:38 CET
fixed in v. 5.6.3
Reply | Permalink
vadddomain error
Roberto Puzzanghera Shailendra Shukla October 18, 2024 17:10 CET
which vpopmail version? How long is the pwd you entered?
Reply | Permalink
vadddomain error
Shailendra Shukla Roberto Puzzanghera October 18, 2024 17:18 CET
I am using Vpopmail version 5.6.2 and the password that I am using is 10 caracters long. Below is the configure options that I used while installing
Regards
Shailendra
Reply | Permalink
vadddomain error
Roberto Puzzanghera Shailendra Shukla October 18, 2024 17:40 CET
Assuming that you are saving your accounts on mysql, did you update the database schema when switching to v. 5.6.2 as mentioned in the upgrading notes?
Reply | Permalink
vadddomain error
Shailendra Shukla Roberto Puzzanghera October 18, 2024 17:45 CET
Its a fresh install and the database schema is updated. I am testing on a new machine and will later on upgrade on the old installation.
Regards
Shailendra
Reply | Permalink
vadddomain error
Roberto Puzzanghera Shailendra Shukla October 18, 2024 18:09 CET
I get the error when disabling sha-512 passwords. It's a feature that was added by the TLK games' maintainers. I'll have a look at it
Reply | Permalink
vadddomain error
Shailendra Shukla Roberto Puzzanghera October 18, 2024 18:17 CET
surprisingly I tested adding a domain with a 8 character long password and it gets added successfully. For subsequent user addition also it accepts 8 caracter long password but does not work with a password longer than 8 caracters.
Thought I will let you know . Meanwhile I will re-install without the --disable-sha512-passwords option and test.
Reply | Permalink
vadddomain error
Roberto Puzzanghera Shailendra Shukla October 18, 2024 18:31 CET
for the time being, modify line 50 of vpopmail.h like this and recompile
I think it will fix the issue (I cannot test it now). Tomorrow I'll patch it
Reply | Permalink
vusaged
Ivelin Topalov October 14, 2024 00:17 CET
vusaged
domain.c:
add on line 31:
#include
Reply | Permalink
vusaged
Roberto Puzzanghera Ivelin Topalov October 14, 2024 15:33 CET
Thanks Ivelin, I have pulled these corrections to vpopmail in my github a couple of months ago. Also I added a pull request in the github space of vpopmail's current maintainers, but it seems that project has lost momentum
Reply | Permalink
vusaged
Ivelin Topalov October 14, 2024 00:07 CET
must be:
Reply | Permalink
vpopmail compile
Ivelin Topalov October 14, 2024 00:00 CET
add in configure where:
#include #include #include + #include + #include int main() { struct passwd *pw;else it will fail on latest ubuntu
Reply | Permalink
SHA512 login problem
Mike January 20, 2024 23:38 CET
Hello Roberto,
just moved to latest version of Vpopmail.
Got problem with loging for new user with SHA515 encryption. I can add user without any errors but cannot login via Roundcube or any other mail client. old users has no problems.
login via cmd is working for new users as well.
Reply | Permalink
SHA512 login problem
Roberto Puzzanghera Mike January 21, 2024 06:20 CET
Which vpopmail Auth driver for dovecot are you using? I tested SQL with
I can auth with any encryption here
Reply | Permalink
SHA512 login problem
Mike Roberto Puzzanghera January 21, 2024 08:07 CET
After changing above mentioned scheme authentication start working.
thx.
Reply | Permalink
sql error
Bai Borko December 12, 2023 09:26 CET
Hi Roberto,
I have installed the new vpopmail version 5.6 only for test.
When i try to add new user receive the following:
Reply | Permalink
sql error
Roberto Puzzanghera Bai Borko December 12, 2023 10:22 CET
The new vpopmail introduces SHA512 passwords with a minimum length that can be disabled at configure time with --disable-minimum-pwd-length.
What's the size of your pw_passwd in the vpopmail dB table?
Reply | Permalink
sql error
Bai Borko Roberto Puzzanghera December 12, 2023 11:26 CET
Hi,
pw_passwd is char 40 . This DB is working good with 5.4.33 + yours pach, but not with v. 5.6
Reply | Permalink
sql error
Roberto Puzzanghera Bai Borko December 12, 2023 12:51 CET
Hi,
the pw_passwd column is now char(128) to allow SHA512 passwords, and with a minimum length of 12 chars. I'll add a note about it.
You can increase the pw_passwd dimension
Reply | Permalink
sql error
Bai Borko Roberto Puzzanghera December 13, 2023 09:22 CET
Hi Roberto,
after change column pw_passwd to char(128) I able to add new user.
But with this user i can't login. Only with existing old users the login is successfull.
In v. 5.6 the password is changed not only length but and the format - the old passwords begins with $1$, the new ones with $6$.
Reply | Permalink
sql error
Roberto Puzzanghera Bai Borko December 13, 2023 10:22 CET
Which pwd scheme do you have in your config? I have md5-crypt. It works with both
Reply | Permalink
sql error
Bai Borko Roberto Puzzanghera December 13, 2023 10:37 CET
for configure in v. 5.6 use exact the same option like in your guide nothing additional
Reply | Permalink
sql error
Roberto Puzzanghera Bai Borko December 13, 2023 13:08 CET
the new 5.6 enables sha512-passwords, which are those starting with $6. Can you check that sha512-passwords are enabled looking for
in your vpopmail/include/config.h file?
This option is enabled by default, but it can be disabled at configure time with --disable-sha512-passwords
PS if the answer is yes, I would try to do an strace against a vpopmail telnet session:
just to see what's happening
Reply | Permalink
sql error
Bai Borko Roberto Puzzanghera December 13, 2023 16:23 CET
Hi,
here is the output.log
39458 execve("/usr/bin/telnet", ["telnet", "0", "89"], 0x7fff41ed4268 /* 16 vars */) = 039458 brk(NULL) = 0x563523baf000
39458 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffcd36da670) = -1 EINVAL (Invalid argument)
39458 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f59f8a6d000
39458 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
39458 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
39458 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=33243, ...}, AT_EMPTY_PATH) = 0
39458 mmap(NULL, 33243, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f59f8a64000
39458 close(3) = 0
39458 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
39458 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
39458 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=2260296, ...}, AT_EMPTY_PATH) = 0
39458 mmap(NULL, 2275520, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f59f8838000
39458 mprotect(0x7f59f88d2000, 1576960, PROT_NONE) = 0
39458 mmap(0x7f59f88d2000, 1118208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9a000) = 0x7f59f88d2000
39458 mmap(0x7f59f89e3000, 454656, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ab000) = 0x7f59f89e3000
39458 mmap(0x7f59f8a53000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21a000) = 0x7f59f8a53000
39458 mmap(0x7f59f8a61000, 10432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f59f8a61000
39458 close(3) = 0
39458 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
39458 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\237\2\0\0\0\0\0"..., 832) = 832
39458 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
39458 pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48
39458 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0 =\340\2563\265?\356\25x\261\27\313A#\350"..., 68, 896) = 68
39458 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2216304, ...}, AT_EMPTY_PATH) = 0
39458 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
39458 mmap(NULL, 2260560, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f59f8610000
39458 mmap(0x7f59f8638000, 1658880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f59f8638000
39458 mmap(0x7f59f87cd000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7f59f87cd000
39458 mmap(0x7f59f8825000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x214000) = 0x7f59f8825000
39458 mmap(0x7f59f882b000, 52816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f59f882b000
39458 close(3) = 0
39458 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
39458 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
39458 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=940560, ...}, AT_EMPTY_PATH) = 0
39458 mmap(NULL, 942344, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f59f8529000
39458 mmap(0x7f59f8537000, 507904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7f59f8537000
39458 mmap(0x7f59f85b3000, 372736, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8a000) = 0x7f59f85b3000
39458 mmap(0x7f59f860e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe4000) = 0x7f59f860e000
39458 close(3) = 0
39458 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
39458 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
39458 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=125488, ...}, AT_EMPTY_PATH) = 0
39458 mmap(NULL, 127720, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f59f8509000
39458 mmap(0x7f59f850c000, 94208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f59f850c000
39458 mmap(0x7f59f8523000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7f59f8523000
39458 mmap(0x7f59f8527000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d000) = 0x7f59f8527000
39458 close(3) = 0
39458 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f59f8507000
39458 arch_prctl(ARCH_SET_FS, 0x7f59f85083c0) = 0
39458 set_tid_address(0x7f59f8508690) = 39458
39458 set_robust_list(0x7f59f85086a0, 24) = 0
39458 rseq(0x7f59f8508d60, 0x20, 0, 0x53053053) = 0
39458 mprotect(0x7f59f8825000, 16384, PROT_READ) = 0
39458 mprotect(0x7f59f8527000, 4096, PROT_READ) = 0
39458 mprotect(0x7f59f860e000, 4096, PROT_READ) = 0
39458 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f59f8505000
39458 mprotect(0x7f59f8a53000, 45056, PROT_READ) = 0
39458 mprotect(0x563522bf1000, 4096, PROT_READ) = 0
39458 mprotect(0x7f59f8aa7000, 8192, PROT_READ) = 0
39458 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
39458 munmap(0x7f59f8a64000, 33243) = 0
39458 getrandom("\x20\xbe\xf1\x69\x6f\xc6\xdf\xd9", 8, GRND_NONBLOCK) = 8
39458 brk(NULL) = 0x563523baf000
39458 brk(0x563523bd0000) = 0x563523bd0000
39458 rt_sigaction(SIGTSTP, {sa_handler=0x563522beaf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=SIG_DFL, sa_mask=[], sa_f
lags=0}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
39458 newfstatat(1, "", {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0x1), ...}, AT_EMPTY_PATH) = 0
39458 write(1, "Trying 0.0.0.0...\n", 18) = 18
39458 close(-1) = -1 EBADF (Bad file descriptor)
39458 socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 3
39458 setsockopt(3, SOL_IP, IP_TOS, [16], 4) = 0
39458 connect(3, {sa_family=AF_INET, sin_port=htons(89), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
39458 openat(AT_FDCWD, "/etc/telnetrc", O_RDONLY) = -1 ENOENT (No such file or directory)
39458 openat(AT_FDCWD, "/root/.telnetrc", O_RDONLY) = -1 ENOENT (No such file or directory)
39458 write(1, "Connected to 0.\n", 16) = 16
39458 write(1, "Escape character is '^]'.\n", 26) = 26
39458 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
39458 rt_sigaction(SIGINT, {sa_handler=0x563522be5a90, sa_mask=[INT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=SIG_DFL, sa_mask=[], sa_fla
gs=0}, 8) = 0
39458 rt_sigaction(SIGQUIT, {sa_handler=0x563522be5c90, sa_mask=[QUIT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=SIG_DFL, sa_mask=[], sa_f
lags=0}, 8) = 0
39458 rt_sigaction(SIGWINCH, {sa_handler=0x563522be46d0, sa_mask=[WINCH], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=SIG_DFL, sa_mask=[], sa
_flags=0}, 8) = 0
39458 rt_sigaction(SIGTSTP, {sa_handler=0x563522beaf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=0x563522beaf20, sa_mask=[
TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, FIONBIO, [1]) = 0
39458 ioctl(1, FIONBIO, [1]) = 0
39458 ioctl(3, FIONBIO, [1]) = 0
39458 setsockopt(3, SOL_SOCKET, SO_OOBINLINE, [1], 4) = 0
39458 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (in [3], left {tv_sec=0, tv_nsec=0})
39458 recvfrom(3, "+OK \r\n", 8191, 0, NULL, NULL) = 6
39458 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [1], left {tv_sec=0, tv_nsec=0})
39458 write(1, "+OK \n", 5) = 5
39458 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
39458 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [0])
39458 read(0, "login test3@svoge.bg 123\n", 8191) = 25
39458 pselect6(4, [0 3], [3], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [3], left {tv_sec=0, tv_nsec=0})
39458 sendto(3, "login test3@svoge.bg 123\r\n", 26, 0, NULL, 0) = 26
39458 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
39458 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [3])
39458 recvfrom(3, "+OK+\r\nvpopmail_dir /home/vpopmai"..., 8186, 0, NULL, NULL) = 362
39458 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 2 (in [3], out [1], left {tv_sec=0, tv_nsec=0})
39458 write(1, "+OK+\nvpopmail_dir /home/vpopmail"..., 349) = 349
39458 recvfrom(3, "no_webmail 0\r\nno_imap 0\r\nbounce_"..., 7824, 0, NULL, NULL) = 52
39458 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 2 (in [3], out [1], left {tv_sec=0, tv_nsec=0})
39458 write(1, "no_webmail 0\nno_imap 0\nbounce_ma"..., 48) = 48
39458 recvfrom(3, "no_dialup 0\r\nuser_flag_0 0\r\nuser"..., 7772, 0, NULL, NULL) = 216
39458 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [1], left {tv_sec=0, tv_nsec=0})
39458 write(1, "no_dialup 0\nuser_flag_0 0\nuser_f"..., 203) = 203
39458 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
39458 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [0])
39458 read(0, "\35", 8167) = 1
39458 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=0x563522beaf20, sa_mask=[TSTP],
sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, FIONBIO, [0]) = 0
39458 ioctl(1, FIONBIO, [0]) = 0
39458 write(1, "\n", 1) = 1
39458 newfstatat(0, "", {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0x1), ...}, AT_EMPTY_PATH) = 0
39458 write(1, "telnet> ", 8) = 8
39458 read(0, "", 1024) = 0
39458 shutdown(3, SHUT_RDWR) = 0
39458 close(3) = 0
39458 write(1, "Connection closed.\n", 19) = 19
39458 brk(0x563523bf3000) = 0x563523bf3000
39458 rt_sigaction(SIGTSTP, {sa_handler=0x563522beaf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=SIG_DFL, sa_mask=[TSTP],
sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 rt_sigaction(SIGTSTP, {sa_handler=0x563522beaf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=0x563522beaf20, sa_mask=[
TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, FIONBIO, [1]) = 0
39458 ioctl(1, FIONBIO, [1]) = 0
39458 pselect6(2, NULL, [1], NULL, NULL, NULL) = 1 (out [1])
39458 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=0x563522beaf20, sa_mask=[TSTP],
sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, FIONBIO, [0]) = 0
39458 ioctl(1, FIONBIO, [0]) = 0
39458 rt_sigaction(SIGTSTP, {sa_handler=0x563522beaf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=SIG_DFL, sa_mask=[TSTP],
sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, FIONBIO, [1]) = 0
39458 ioctl(1, FIONBIO, [1]) = 0
39458 pselect6(2, NULL, [1], NULL, NULL, NULL) = 1 (out [1])
39458 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, {sa_handler=0x563522beaf20, sa_mask=[TSTP],
sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f59f8652520}, 8) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
39458 ioctl(0, FIONBIO, [0]) = 0
39458 ioctl(1, FIONBIO, [0]) = 0
39458 close(-1) = -1 EBADF (Bad file descriptor)
39458 exit_group(0) = ?
39458 +++ exited with 0 ++
Reply | Permalink
sql error
Roberto Puzzanghera Bai Borko December 13, 2023 16:39 CET
First of all, can you confirm that you have pw_passwd with char(128) and that sha512-password is enabled in your vpopmail/include/config.h?
The first part of your strace shows a successfull login via telnet... it's not clear to me what's happening thereafter, but I don't see any other login attempt. Can you try again with one of those account with SHA password please?
Reply | Permalink
sql error
Bai Borko Roberto Puzzanghera December 13, 2023 17:06 CET
I confirm,
my pw_passwd column is 128 and sha512-password is enabled by default. The 5.6 source is not touched .
Here is the output with old SHA password logn :
40597 execve("/usr/bin/telnet", ["telnet", "0", "89"], 0x7ffe6933a148 /* 16 vars */) = 040597 brk(NULL) = 0x556fbcb3a000
40597 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffd27d12720) = -1 EINVAL (Invalid argument)
40597 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3a28b2000
40597 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
40597 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
40597 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=33243, ...}, AT_EMPTY_PATH) = 0
40597 mmap(NULL, 33243, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff3a28a9000
40597 close(3) = 0
40597 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
40597 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
40597 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=2260296, ...}, AT_EMPTY_PATH) = 0
40597 mmap(NULL, 2275520, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff3a267d000
40597 mprotect(0x7ff3a2717000, 1576960, PROT_NONE) = 0
40597 mmap(0x7ff3a2717000, 1118208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9a000) = 0x7ff3a2717000
40597 mmap(0x7ff3a2828000, 454656, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ab000) = 0x7ff3a2828000
40597 mmap(0x7ff3a2898000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21a000) = 0x7ff3a2898000
40597 mmap(0x7ff3a28a6000, 10432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff3a28a6000
40597 close(3) = 0
40597 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
40597 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\237\2\0\0\0\0\0"..., 832) = 832
40597 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
40597 pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48
40597 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0 =\340\2563\265?\356\25x\261\27\313A#\350"..., 68, 896) = 68
40597 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=2216304, ...}, AT_EMPTY_PATH) = 0
40597 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
40597 mmap(NULL, 2260560, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff3a2455000
40597 mmap(0x7ff3a247d000, 1658880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7ff3a247d000
40597 mmap(0x7ff3a2612000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7ff3a2612000
40597 mmap(0x7ff3a266a000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x214000) = 0x7ff3a266a000
40597 mmap(0x7ff3a2670000, 52816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff3a2670000
40597 close(3) = 0
40597 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
40597 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
40597 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=940560, ...}, AT_EMPTY_PATH) = 0
40597 mmap(NULL, 942344, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff3a236e000
40597 mmap(0x7ff3a237c000, 507904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7ff3a237c000
40597 mmap(0x7ff3a23f8000, 372736, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8a000) = 0x7ff3a23f8000
40597 mmap(0x7ff3a2453000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe4000) = 0x7ff3a2453000
40597 close(3) = 0
40597 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
40597 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
40597 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=125488, ...}, AT_EMPTY_PATH) = 0
40597 mmap(NULL, 127720, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff3a234e000
40597 mmap(0x7ff3a2351000, 94208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7ff3a2351000
40597 mmap(0x7ff3a2368000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7ff3a2368000
40597 mmap(0x7ff3a236c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d000) = 0x7ff3a236c000
40597 close(3) = 0
40597 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3a234c000
40597 arch_prctl(ARCH_SET_FS, 0x7ff3a234d3c0) = 0
40597 set_tid_address(0x7ff3a234d690) = 40597
40597 set_robust_list(0x7ff3a234d6a0, 24) = 0
40597 rseq(0x7ff3a234dd60, 0x20, 0, 0x53053053) = 0
40597 mprotect(0x7ff3a266a000, 16384, PROT_READ) = 0
40597 mprotect(0x7ff3a236c000, 4096, PROT_READ) = 0
40597 mprotect(0x7ff3a2453000, 4096, PROT_READ) = 0
40597 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3a234a000
40597 mprotect(0x7ff3a2898000, 45056, PROT_READ) = 0
40597 mprotect(0x556fbadb4000, 4096, PROT_READ) = 0
40597 mprotect(0x7ff3a28ec000, 8192, PROT_READ) = 0
40597 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
40597 munmap(0x7ff3a28a9000, 33243) = 0
40597 getrandom("\xc1\xd0\xb2\xe2\x03\x36\x20\xc6", 8, GRND_NONBLOCK) = 8
40597 brk(NULL) = 0x556fbcb3a000
40597 brk(0x556fbcb5b000) = 0x556fbcb5b000
40597 rt_sigaction(SIGTSTP, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
40597 newfstatat(1, "", {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0x1), ...}, AT_EMPTY_PATH) = 0
40597 write(1, "Trying 0.0.0.0...\n", 18) = 18
40597 close(-1) = -1 EBADF (Bad file descriptor)
40597 socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 3
40597 setsockopt(3, SOL_IP, IP_TOS, [16], 4) = 0
40597 connect(3, {sa_family=AF_INET, sin_port=htons(89), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
40597 openat(AT_FDCWD, "/etc/telnetrc", O_RDONLY) = -1 ENOENT (No such file or directory)
40597 openat(AT_FDCWD, "/root/.telnetrc", O_RDONLY) = -1 ENOENT (No such file or directory)
40597 write(1, "Connected to 0.\n", 16) = 16
40597 write(1, "Escape character is '^]'.\n", 26) = 26
40597 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
40597 rt_sigaction(SIGINT, {sa_handler=0x556fbada8a90, sa_mask=[INT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
40597 rt_sigaction(SIGQUIT, {sa_handler=0x556fbada8c90, sa_mask=[QUIT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
40597 rt_sigaction(SIGWINCH, {sa_handler=0x556fbada76d0, sa_mask=[WINCH], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
40597 rt_sigaction(SIGTSTP, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, FIONBIO, [1]) = 0
40597 ioctl(1, FIONBIO, [1]) = 0
40597 ioctl(3, FIONBIO, [1]) = 0
40597 setsockopt(3, SOL_SOCKET, SO_OOBINLINE, [1], 4) = 0
40597 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (in [3], left {tv_sec=0, tv_nsec=0})
40597 recvfrom(3, "+OK \r\n", 8191, 0, NULL, NULL) = 6
40597 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [1], left {tv_sec=0, tv_nsec=0})
40597 write(1, "+OK \n", 5) = 5
40597 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
40597 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [0])
40597 read(0, "login baiborko@svoge.bg mypw"..., 8191) = 35
40597 pselect6(4, [0 3], [3], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [3], left {tv_sec=0, tv_nsec=0})
40597 sendto(3, "login baiborko@svoge.bg mypw"..., 36, 0, NULL, 0) = 36
40597 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
40597 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [3])
40597 recvfrom(3, "+OK+\r\nvpopmail_dir /home/vpopmai"..., 8186, 0, NULL, NULL) = 359
40597 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 2 (in [3], out [1], left {tv_sec=0, tv_nsec=0})
40597 write(1, "+OK+\nvpopmail_dir /home/vpopmail"..., 342) = 342
40597 recvfrom(3, "no_dialup 0\r\nuser_flag_0 0\r\nuser"..., 7827, 0, NULL, NULL) = 216
40597 pselect6(4, [0 3], [1], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [1], left {tv_sec=0, tv_nsec=0})
40597 write(1, "no_dialup 0\nuser_flag_0 0\nuser_f"..., 203) = 203
40597 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
40597 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [0])
40597 read(0, "", 8157) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 pselect6(4, [0 3], [3], [3], {tv_sec=0, tv_nsec=0}, NULL) = 1 (out [3], left {tv_sec=0, tv_nsec=0})
40597 sendto(3, "\4", 1, 0, NULL, 0) = 1
40597 pselect6(4, [0 3], [], [3], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
40597 pselect6(4, [0 3], [], [3], NULL, NULL) = 1 (in [0])
40597 read(0, "\35", 8156) = 1
40597 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, FIONBIO, [0]) = 0
40597 ioctl(1, FIONBIO, [0]) = 0
40597 write(1, "\n", 1) = 1
40597 newfstatat(0, "", {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0x1), ...}, AT_EMPTY_PATH) = 0
40597 write(1, "telnet> ", 8) = 8
40597 read(0, "", 1024) = 0
40597 shutdown(3, SHUT_RDWR) = 0
40597 close(3) = 0
40597 write(1, "Connection closed.\n", 19) = 19
40597 brk(0x556fbcb7e000) = 0x556fbcb7e000
40597 rt_sigaction(SIGTSTP, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 rt_sigaction(SIGTSTP, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, FIONBIO, [1]) = 0
40597 ioctl(1, FIONBIO, [1]) = 0
40597 pselect6(2, NULL, [1], NULL, NULL, NULL) = 1 (out [1])
40597 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, FIONBIO, [0]) = 0
40597 ioctl(1, FIONBIO, [0]) = 0
40597 rt_sigaction(SIGTSTP, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, FIONBIO, [1]) = 0
40597 ioctl(1, FIONBIO, [1]) = 0
40597 pselect6(2, NULL, [1], NULL, NULL, NULL) = 1 (out [1])
40597 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, {sa_handler=0x556fbadadf20, sa_mask=[TSTP], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7ff3a2497520}, 8) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
40597 ioctl(0, FIONBIO, [0]) = 0
40597 ioctl(1, FIONBIO, [0]) = 0
40597 close(-1) = -1 EBADF (Bad file descriptor)
40597 exit_group(0) = ?
40597 +++ exited with 0 +++
Reply | Permalink
sql error
Roberto Puzzanghera Bai Borko December 13, 2023 18:17 CET
ok, but this is a successfull login with the old MD5 password. Can you show a test with a failure (using a login with a new SHA512 pwd)?
Reply | Permalink
sql error
Roberto Puzzanghera Roberto Puzzanghera December 13, 2023 13:18 CET
In addition, since those sha-password are longer than the old $1$ MD5 I think that you have to modify the size of the pw_passwd column, otherwise the string could be truncated when saving
Reply | Permalink
Failing to add Domain
Bob October 11, 2023 21:21 CET
I'm using Debian 12 and sqmail 4.2.27 with vpopmail and your patch. I am able to build and install fine but when I try to create a domain I get this:
However, the domain is there:
And there is a .qmail-default in the dir. If I try to create postmaster@smtp.test.com it still says Domain does not exist.
Any ideas what is causing this? Here is config:
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Bob October 11, 2023 21:33 CET
I suspect that s/qmail saves the users/cdb file in a different position. And I remember that eh mentioned that thing when replying to a post of mine a few days ago.
Can you confirm that the /var/qmail/users/cdb file exists? If yes look for an entry with your domain. Search for an entry in control/virtualdomain as well.
Post the masqueraded results please
Reply | Permalink
Failing to add Domain
Bob Roberto Puzzanghera October 11, 2023 21:46 CET
Yes, you are correct. EH changed the cdb file to be /var/qmail/assign.cdb. And I see that the domain was added to /var/qmail/assign. If I copy assign.cdb to cdb and try to add domain, vadddomain says it already exists.
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Bob October 11, 2023 23:03 CET
I guess you can easily patch the source. I'll do it when I'll find the time
Reply | Permalink
Failing to add Domain
Bob Roberto Puzzanghera October 12, 2023 15:21 CET
Can you give me a hint? What file is involved?
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Bob October 12, 2023 16:27 CET
you have to adjust the vpopmail.c file
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Roberto Puzzanghera October 12, 2023 19:44 CET
can you test this patch with s/qmail please https://notes.sagredo.eu/files/qmail/patches/vpopmail/combined_patch/roberto_vpopmail-5.4.33.patch-2023.10.12?
you have to define the dir where the cdb file is at compilation time in this way
This should work with s/qmail
Reply | Permalink
Failing to add Domain
Bob Roberto Puzzanghera October 13, 2023 16:06 CET
I think you meant --enable-usersdir=/var/qmail/users ?
But I'm getting these errors from config:
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Bob October 13, 2023 16:34 CET
always do
before configuring my vpopmail patch.
I think I misunderstood where the assign and cdb files are located in s/qmail. I think they are located as /var/qmail/assign and /var/qmail/cdb. Am I correct?
Reply | Permalink
Failing to add Domain
Bob Roberto Puzzanghera October 13, 2023 16:44 CET
The file has been changed to assign.cdb. There is no cdb file by itself. The location of this file is: /var/qmail/users/assign.cdb
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Bob October 13, 2023 18:43 CET
can you try with this new patch please? https://notes.sagredo.eu/files/qmail/patches/vpopmail/combined_patch/roberto_vpopmail-5.4.33.patch-2023.10.13
PS you have to configure s/qmail in this way
Reply | Permalink
Failing to add Domain
Bob Roberto Puzzanghera October 13, 2023 21:01 CET
Excellent! Works great. Thanks for fixing it and thanks for all that you do to support qmail!
Reply | Permalink
Failing to add Domain
Roberto Puzzanghera Bob October 13, 2023 16:51 CET
ok. So I have to modify a bit my patch
Reply | Permalink
Using vpopmail with LDAP instead of mysql.
Jeff Maina September 10, 2023 14:25 CET
Hi Roberto, thank you so much for the quide. I've managed to create a full-fledged email server that I can send and receive emails.
However, I've been wondering if have you ever tried using LDAP instead of MySQL. I am trying to create a lab-test that uses LDAP and the options below but I keep getting the error "Segmentation fault (core dumped)"
Reply | Permalink
Using vpopmail with LDAP instead of mysql.
Roberto Puzzanghera Jeff Maina September 10, 2023 15:49 CET
Hi Jeff, no I've never played with LDAP nor with vpopmail nor with qmail.
In this case strace is your friend :-) I'd also disable all additional modules that depends on LDAP (auth-logging valias sql-logging) and add them once you have it working.
Let us know if your LDAP config finally works!
Reply | Permalink
Clear Failed PW in logs
Bobber September 5, 2023 21:27 CET
I'm using vpopmail on Debian. I would still like to see a users password when using vuserinfo but I would like to stop showing failed passwords in the file: /var/log/mail.log. Is this possible without deleting the clear password column in mysql?
Reply | Permalink
Clear Failed PW in logs
Roberto Puzzanghera Bobber September 5, 2023 22:04 CET
It depends on the logging variable at configuration time
I agree with you that the failed passwords shouldn't be shown for security reasons, as we can find there mistypings that are very close to the real passwords. My goal is to log failed attempts so that I can feed fail2ban with them. Maybe we can simply use
if you find a way to log failed attempts with no pwd shown, please let me know
Reply | Permalink
Clear Failed PW in logs
Bob Roberto Puzzanghera September 7, 2023 16:24 CET
It doesn't seem to work for me. Did you drop the clear password column in mysql? I wonder if that is necessary?
Reply | Permalink
Clear Failed PW in logs
Roberto Puzzanghera Bob September 7, 2023 17:10 CET
No, it's not important. Both these tests
and
give the same result. I have this in my syslog when failing the pwd during smtpd conversation
Reply | Permalink
Clear Failed PW in logs
Roberto Puzzanghera Roberto Puzzanghera September 5, 2023 22:13 CET
Yes, I confirm that using
will log the failure with no pwd
I'll change the configuration option in this guide accordingly
Reply | Permalink
... under "Configuring mysql backend" ... when hit the ... mysql -h 192.168.1.108 -u root -p
Johan April 11, 2023 09:36 CET
... When I hit the ... mysql -h 192.168.1.108 -u root -p ... Then the system asking for "Enter password:" ... HowTo know the password ??
grdt.
Reply | Permalink
... under
Roberto Puzzanghera Johan April 11, 2023 11:00 CET
It is the root password that you set when you installed your mysql server
Reply | Permalink
Maybe some typos with quotawarn
Herbert March 17, 2023 13:55 CET
Hi Roberto,
imho you have some typos with the filename for the quotawarn message.
The manual says that the quotawarn.msg file should be with a leading dot --> .quotawarn.msg
"quotawarn.msg:X-Comment: Rename/Copy this file to ~vpopmail/domains/.quotawarn.msg, and make appropriate changes"
Otherwise it was not working with my installation.
And maybe you could change the quotawarn limit from 90% to 80% in maildirquota.h
with your patch because I think 90% is rather late for a warning.
Regards,
Herbert
Reply | Permalink
Maybe some typos with quotawarn
Roberto Puzzanghera Herbert March 17, 2023 14:06 CET
Thank you. Corrected
Reply | Permalink
Sub default-libmysqlclient-dev for libmariadb-dev-compat in ubuntu 22.04
GoofY February 27, 2023 15:30 CET
while trying to install the following:
default-libmysqlclient-dev in Ubuntu 22.04 complains about versioning.
After substituting default-libmysqlclient-dev for libmariadb-dev-compat compiling vpopmail goes without a problem.
Reply | Permalink
Sub default-libmysqlclient-dev for libmariadb-dev-compat in ubuntu 22.04
Roberto Puzzanghera GoofY February 27, 2023 15:35 CET
Thanks for the advise. So Ubuntu is a bit different from Debian 11, where I tested the above recently
Reply | Permalink
Vpopmail minor fixes
Ali Erturk TURKER February 17, 2023 11:03 CET
Hi Roberto
While reviewing vpopmail internals, I came across some bugs which annoyed me. I created a patch to fix those:
1 - vdelivermail.c checks spamassassin permissions, instead of maildrop permissions.
2- vopen_smtp_relay() return values corrected, so that open_smtp_relay() can detect and report database connection errors (vmysql.c, voracle.pc, vpgsql.c )
3- vdel_limits() core-dumps if a database connection is not available beforehand. (vmysql.c, voracle.pc )
The patch will cleanly apply on "vpopmail-5.4.33.tar.gz + vpopmail-5.4.33_gcc-10-compat.patch", since I don't use any other patches.
The fixes are pretty straighforward. Feel free to incorporate them into your "roberto_vpopmail-5.4.33.patch".
Reply | Permalink
vpopmail.c assumes database server to be mysql with non standard mode.
Yasuo Ohgaki September 10, 2022 11:54 CET
I'm using PostgreSQL for database and I noticed vpopmail's SQL escape is not good at all. PostgreSQL(and Oracle) follows ANSI SQL standard string literal. Even MySQL has ANSI_QUOTES mode.
https://dev.mysql.com/doc/refman/8.0/en/string-literals.html
Therefore, vpopmail can be vulnerable to SQL injection. I've requested CVE for this.
This is a quick and dirty patch to disable injections.
This may result in broken string (e.g. pw_clear_passwd), but it much better than injections.
Reply | Permalink
vpopmail.c assumes database server to be mysql with non standard mode.
Roberto Puzzanghera Yasuo Ohgaki September 13, 2022 16:52 CET
Enabling ANSI_QUOTES in mariadb-10.5 throws qmailadmin into a segfault both when entering quotes in any field and when not... Did you try to talk to vpopmail also with qmailadmin?
Edit: vpopmail is unusable. Some examples
Reply | Permalink
SQLite support added to Vpopmail
Bruno Ethvignot March 31, 2022 16:51 CET
Hi,
Patrice who works in my company has added SQLite support to Vpopmail. I am looking for volunteers to test this version. :-) Patrice merged the patches from Roberto and the patches from the FreeBSD port.
The source code is available on GitHub :
https://github.com/brunonymous/vpopmail
You can see the changes made:
https://github.com/brunonymous/vpopmail/blob/main/ChangeLog
Feel free to comment or report bugs.
Bruno
Reply | Permalink
SQLite support added to Vpopmail
Roberto Puzzanghera Bruno Ethvignot March 31, 2022 17:57 CET
Thanks a lot for sharing :-) The changelog seems to be very very interesting
I'll have a look in the following days and test it
PS you may want to add this modification I did a few days ago to vmysql.c, which solves a compilation break on debian 11 / gcc-10
Reply | Permalink
missing file smtp.tmp
Newb July 9, 2021 08:47 CET
im missing file smtp.tmp in directory ~vpopmail/etc/
i think vpopmail didnt installed corretly but i dont get any error :(
any ideas?
Reply | Permalink
missing file smtp.tmp
Roberto Puzzanghera Newb July 9, 2021 10:02 CET
You can create it manually with a plain text editor
Reply | Permalink
Installing and configuring vusaged
Newb July 6, 2021 14:59 CET
from tutorial
command make didnt work
but in folder i have a makefile
Reply | Permalink
Installing and configuring vusaged
Roberto Puzzanghera Newb July 6, 2021 15:07 CET
I think you are in the wrong directory
Reply | Permalink
Installing and configuring vusaged
Newb Roberto Puzzanghera July 7, 2021 10:58 CET
which directory should it be?
mine is /usr/local/src/vpopmail-5.4.33/vusaged
Reply | Permalink
Installing and configuring vusaged
Roberto Puzzanghera Newb July 7, 2021 12:49 CET
It works here... I'd suggest to to download again and recompile
Reply | Permalink
vpopmail issue
Newb July 6, 2021 12:45 CET
Hi
i had a problem when execute
what do i miss?
i installed
mysql-server 8.0
mysql-client 8.0
libmysqlclient-dev
libmysqlclient21
Reply | Permalink
vpopmail issue
Roberto Puzzanghera Newb March 17, 2022 20:08 CET
The new combined patch of today (Mar 17, 2022) should solve this compilation problem
Reply | Permalink
vpopmail issue
Bobber Newb March 16, 2022 16:59 CET
I am having the same problem on Debian Buster. Using this config:
./configure \ --enable-maildrop-prog=/usr/bin/maildrop \ --enable-onchange-script \ --enable-qmaildir=/var/qmail/ \ --enable-qmail-newu=/var/qmail/bin/qmail-newu \ --enable-qmail-inject=/var/qmail/bin/qmail-inject \ --enable-qmail-newmrh=/var/qmail/bin/qmail-newmrh \ --disable-roaming-users \ --enable-auth-module=mysql \ --enable-incdir=/usr/include/mysql \ --enable-libdir=/usr/lib64 \ --enable-logging=p \ --enable-auth-logging \ --enable-sql-logging \ --disable-valias \ --enable-qmail-ext \ --enable-learn-passwords \ --enable-mysql-limits \ --enable-sql-aliasdomains \ --enable-defaultdeliveryReply | Permalink
vpopmail issue
Roberto Puzzanghera Bobber March 16, 2022 21:37 CET
Hi, can you post the error you get?
Reply | Permalink
vpopmail issue
Roberto Puzzanghera Bobber March 16, 2022 17:10 CET
did you solve installing the packeges listed below?
Reply | Permalink
vpopmail issue
Anonymous Newb September 2, 2021 15:13 CET
finally I solved as well. My system is ubuntu server 18.04 I've executed:
Reply | Permalink
vpopmail issue
Roberto Puzzanghera Anonymous September 2, 2021 21:13 CET
thank you. The same for me in a debian server where libmysqlclient was missing. Now I added this to the current page
Reply | Permalink
vpopmail issue
carlos Newb September 2, 2021 14:59 CET
I have the same problem, and I tried to recompile vpopmail and re-patch but the error persists
Reply | Permalink
vpopmail issue
Roberto Puzzanghera Newb July 6, 2021 12:56 CET
Hi, can you post your configure command, please?
Reply | Permalink
vpopmail issue
Newb Roberto Puzzanghera July 6, 2021 13:49 CET
Do u mean command ./configure ?
Reply | Permalink
vpopmail issue
Roberto Puzzanghera Newb July 6, 2021 14:01 CET
I saw your configure results. How did you patch vpopmail? Did you get any errors when patching?
Reply | Permalink
vpopmail issue
Newb Roberto Puzzanghera July 6, 2021 14:36 CET
i used command patch -p1 < ../roberto_vpopmail-5.4.33.patch
and resort:
no errors
Reply | Permalink
vpopmail issue
Roberto Puzzanghera Newb July 6, 2021 14:39 CET
I can't reproduce your configure results that you posted before.
Can you post the configure command that you are using, please?
Reply | Permalink
vpopmail issue
Newb Roberto Puzzanghera July 6, 2021 14:50 CET
Solved
i repatched vpopmail i again execute make install-strip and now it return no errors
thanks you :)
Reply | Permalink
error with make install-strip
keeper24 April 19, 2021 19:11 CET
Hi,
when i execute
i get a messenge:
any ideas?
Reply | Permalink
error with make install-strip
Roberto Puzzanghera keeper24 April 19, 2021 19:21 CET
it seems that you are missing the zlib package...
Reply | Permalink
problem with passwords containing special characters like %
blueintheface February 26, 2021 09:05 CET
I'm doinig a fresh installation, decided to compile with --enable-clear-passwd and am running into the following problem:
Using "%#" or "%+" or the like doesn't seem possible, but "%R" works.
OS: OpenSUSE 15.2
DB: MariaDB 10.4.17
Server-Character-Set: UTF-8 Unicode (utf8mb4)
Database "vpopmail" was created using collation "utf8mb4_general_ci", which is the default for standard MariaDB installation.
I'm ok with changing passwords for existing users (have to import a couple of existing domains) but am afraid there may be other issues with passwords and authentication.
Or is it just the clear password which is the problem and authentication with whatever client will be ok even when passwords like '%RxtraMT#66%' are used?
Reply | Permalink
problem with passwords containing special characters like %
Roberto Puzzanghera blueintheface February 26, 2021 21:02 CET
Hi, I tested that password and it was accepted here...
which vpopmail version and patch?
PS tested both with mariadb-10.5.9 (query from command line) and mariadb-10.0.0.112
Reply | Permalink
problem with passwords containing special characters like %
blueintheface Roberto Puzzanghera February 28, 2021 11:26 CET
Hi and thx for the quick reply.
vpopmail is v5.4.33, as well is the patch.
Did download and patch as directed above:
Language of the OS installaition is German.
status of MariaDB-server:
Also recompile with --disable-clear-passwd doesn't make any difference. The error stays the same, even though the password is not stored in the database in clear text.
Reply | Permalink
problem with passwords containing special characters like %
Roberto Puzzanghera blueintheface March 2, 2021 09:24 CET
Unfortunately I've no idea at the moment, a I can't reproduce the issue...
Reply | Permalink
aliasdomain patch compilation issue
Wouter de Geus February 21, 2021 13:35 CET
Hi Roberto!
Recently I switched to the SQL driver and of course ran into the aliasdomains issue, so today I gave your patch a shot using a new alpine-3.13 build.
However, it runs into a snag:
This is after running autoreconf.
I did also apply the GCC 10 patch, because without it the compilation broke on MYSQL definitions.
Suggestions?
Reply | Permalink
aliasdomain patch compilation issue
Roberto Puzzanghera Wouter de Geus February 21, 2021 15:28 CET
Hi Wouter!
I thought I have corrected this compilation issue in the feb 15 patch... can you confirm that you downloaded this latest version marked as 2021.02.15? Just look at the first line of the patch file
which gcc version?
PS gcc-10 compat patch is already included into the latest sql-aliasdomains patch
Reply | Permalink
You step "Installing and configuring vpopmail"
johan lesky February 12, 2021 12:57 CET
... Do I need to have MySQL or MariaDB, installed before I run Your step "Installing and configuring vpopmail" ?
grdt.
Reply | Permalink
You step
Roberto Puzzanghera johan lesky February 12, 2021 13:26 CET
One of the two. It does not make any difference
Reply | Permalink
Problem compiling vpopmail with postgresql support on alpine 12
Bogdan December 4, 2020 06:28 CET
Hi,
I try compile vpopmail with pgsql support on alpine 12 and I get error:
Can somebody tell what I should do to fix this problem?
Reply | Permalink
Problem compiling vpopmail with postgresql support on alpine 12
Roberto Puzzanghera Bogdan December 4, 2020 17:41 CET
You have compilation breaks because vpopmail is not compatible with the new gcc-10.
Try this patch (you may want to apply only the changes to vpgsql.c): https://notes.sagredo.eu/files/qmail/patches/vpopmail/vpopmail-5.4.33_gcc-10-compat.patch
Let me know if it works
Reply | Permalink
Problem compiling vpopmail with postgresql support on alpine 12
Bogdan Roberto Puzzanghera December 7, 2020 10:39 CET
works well
Reply | Permalink
Using dovecot-lda with vpopmail valias database table
Michael Dick September 29, 2020 20:59 CET
Hi Robert
I have an extensive valias table, and I recently added sieve filtering.
As mentioned above in the thread between you and Eric, dovecot-lda doesn't respect the vpopmail.valias entries in the database, and instead relies on .qmail-alias files. That meant that for mail to be delivered to my aliases, I either needed to create a .qmail-alias file for each one (which would be a mess), or keep using vdelivermail and skip sieve filtering.
As an alternative to Eric's solution of creating .qmail-alias files, you can --enable-valias and add an entry for the destination account to the valias table and keep the delivery agent set to vdelivermail.
This is my .qmail-default file (I prefer to use bounce)
To add the valias to the database table, I use this: (replacing mailboxname and example.com as appropriate)
Hopefully this helps someone else out there.
If I had more time, I'd look at patching dovecot to use the valias table. Maybe one day.
Reply | Permalink
Using dovecot-lda with vpopmail valias database table
Roberto Puzzanghera Michael Dick September 30, 2020 19:02 CET
Hi Michael, thanks for your contribution, it's very much appreciated.
I think I am missing something on how things work in your configuration. You are using vdelivermail in your .qmail-default so you are giving up on sieve filters and vdelivermail can work well with valiases even without your hack... what I am missing?
Reply | Permalink
Using dovecot-lda with vpopmail valias database table
Michael Dick Roberto Puzzanghera October 3, 2020 10:17 CET
Hi Robert
I was trying to show is that you can use the valias table from vpopmail and still make sieve filtering work, without having to set up any .qmail-alias files.
The existing instructions and comments suggest you had to choose one or the other.
Reply | Permalink
Using dovecot-lda with vpopmail valias database table
Roberto Puzzanghera Michael Dick October 3, 2020 10:27 CET
I don't understand how you can have sieve working if you have vdelivermail in your .qmail-default
Reply | Permalink
Using dovecot-lda with vpopmail valias database table
Michael Dick Roberto Puzzanghera October 3, 2020 10:58 CET
Ah, that's the magic: I have an entry in the valias table for my actual mailbox name, that tells it to use dovecot's deliver program.
So:
Now, when an email for alias@example.com arrives, vdelivermail finds the alias michael@example.com and tells vdelivermail to deliver to that address. Vdelivermail then finds my alias for michael@example.com and calls dovecot's deliver to complete the delivery (which also processes the sieve rules).
Hopefully that's a bit clearer?
Michael
Reply | Permalink
Using dovecot-lda with vpopmail valias database table
Roberto Puzzanghera Michael Dick October 3, 2020 12:41 CET
That's clear now, even though this can be a solution suitable just for servers with a small bunch of users and for administrators who know what they are doing, otherwise patching vpopmail and/or dovecot would be needed. Anyway it's good to know. Thank you
Reply | Permalink
vpopmail installation issue
Kenny Lee September 2, 2020 04:28 CET
Hi Mr Roberto,
i am facing an issue while running this command "make install-strip", below is the message:
what shoud I do next? any settings need to be done in vpopmail folder?
Thank you
Regards, Kenny
Reply | Permalink
vpopmail installation issue
Roberto Puzzanghera Kenny Lee December 4, 2020 21:14 CET
Today I released two patches, one for qmail and another for vpopmail, which solve these compilation breaks.
Reply | Permalink
vpopmail installation issue
Roberto Puzzanghera Kenny Lee September 2, 2020 07:58 CET
No idea... any suspicious message from configure & make commands?
Reply | Permalink
vpopmail installation issue
Kenny Lee Roberto Puzzanghera September 2, 2020 09:32 CET
Hi Mr Roberto,
my Linux is openSUSE Tumbleweed
mysql is MariaDB version 10.4.14
while running the configure command no issue, the summary as below:
but when i tried to run "make install-strip", the error message pop up :
do we need to define MYSQL data in vmysql.h?
thank you
Reply | Permalink
vpopmail installation issue
Roberto Puzzanghera Kenny Lee September 2, 2020 13:17 CET
I didn't test it against mariadb-10.4, but I would try to declare with #ifndef those variables in mysql.h
Reply | Permalink
vpopmail installation issue
Kenny Lee Roberto Puzzanghera September 3, 2020 03:38 CET
Hi Mr Roberto,
i deleted the vpopmail setup folder and extracted the zip file again, then this time i just run a "./configure" without any options and then "make install-strip", this time no error came out... then i tried to run again "./configure" with options then "make install-strip" .. no more error popup.
i continued your steps until netqmail setup which mean i done all the Patching steps. Now i hit another error, while i run "make setup check" in netqmail-1.06 folder, i got below error:
any idea?
Thank you
Reply | Permalink
vpopmail installation issue
Roberto Puzzanghera Kenny Lee September 8, 2020 22:06 CET
I suppose you are compiling with gcc 10. Look at this https://gcc.gnu.org/gcc-10/porting_to.html
Reply | Permalink
vpopmail installation issue
Roberto Puzzanghera Kenny Lee September 3, 2020 08:11 CET
It seems the same kind of error of vpopmail compilation.. did you try to download the sources, patching and compiling again?
Reply | Permalink
vpopmail installation issue
Kenny Lee Roberto Puzzanghera September 4, 2020 04:13 CET
Hi Mr Roberto,
yes, i have redownloaded again the netqmail-1.06 file from your source and also the original source, then patch again.. but no luck.. both also same issue... what i have done, i just patch the file which only with smtp-auth, qmail-tls and force-tls. then it's works.
After that, when i tried to start Qmail and i found that the Daemontool was not start. for OpenSuse Tumbleweed, no more /etc/inittab use in the system, so what i have done, i need to ln that svscanboot file to /etc/rc.d/ then add it as auto start then completed Qmail Setup.
Thanks for the help.
Reply | Permalink
vpopmail installation issue
Roberto Puzzanghera Kenny Lee September 4, 2020 08:11 CET
In the event of a systemd linux it is sufficient to start all services by rc.local, which should be created as a service in systemd
Reply | Permalink
vchkpw auth errors
Lawrence August 2, 2019 07:51 CET
May need to fix suid permissions for vpopmail's vchkpw after compiling to avoid auth errors.
eg
Reply | Permalink
vchkpw auth errors
Roberto Puzzanghera Lawrence August 2, 2019 09:08 CET
It wouldn't be better to run qmail-smtpd as vpopmail:vchkpw instead of letting everyone (not only qmail-smtpd) execute vchkpw with the owner's priviledges?
Reply | Permalink
libev missing
mizzio July 17, 2019 16:10 CET
Hello Roberto,
I think I've found a small error in your guide: the latest available libev version is 4.27 and not 4.22: http://dist.schmorp.de/libev/libev-4.27.tar.gz
Ciao !
Reply | Permalink
valias doesn't work
Gabriel Torres June 19, 2019 14:05 CET
Hello,
For some reason, vpopmail valias (i.e., storing valiases inside the MySQL database) doesn't work with chkuser, even if we configure both to do so. With valiases stored inside the database, vchkuser will reject emails sent to aliases (no mailbox). At least with me, chkuser only recognized valiases using the dot-qmail format. So, make sure to compile vpopmail with --disable-valias and --enable-qmail-ext as instructed, and remember that you will need to configure dot-qmail files for your aliases in the /home/vpopmail/domain/DOMAINNAME directory.
Reply | Permalink
Vusage configure error
Kevin Salt August 1, 2018 16:04 CET
I get this message during the configure phase of vusage and can't progress from there:
So I am proceeding without implementing vusage (I also don't really acare about user quotas) so I hioe this will still work
Reply | Permalink
Vusage configure error
Roberto Puzzanghera Kevin Salt September 2, 2021 20:40 CET
I faced this issue myself a couple of days ago on a Debian 11. Unfortunately the Luca's fix below didn't help.
I realized that, for unknown reasons, the configure is not linking the libmysqlclient libraries. But patching the configure not to break at that point results in a successfull compilation when make is runned (it finds libmysqlclient). I have vusaged running apparently with no issues for now.
Have a look to this patch
Reply | Permalink
Vusage configure error
Stumpi Kevin Salt April 26, 2019 10:47 CET
Same here, OS: Ubuntu 18.04
Reply | Permalink
Vusage configure error
Roberto Puzzanghera Kevin Salt August 2, 2018 07:36 CET
look here (first item on google!) http://vchkpw.inter7.narkive.com/ftLwnnZq/vusaged-compile-error
Anyway everything will work even without vusaged
Reply | Permalink
Vusage configure error
GoofY Roberto Puzzanghera April 8, 2019 18:05 CET
Which unfortunately doesn't provide a solution...
If anyone managed to workaround this issue plz share here
Reply | Permalink
Vusage configure error
Luca GoofY August 2, 2019 18:09 CET
Try this:
Reply | Permalink
Vusage configure error
Eric Broch Luca July 13, 2025 21:50 CET
I used this in my vpopmail.spec file, and it worked. One should not have to do this though.
Reply | Permalink
Vusage configure error
carlos Luca September 2, 2021 15:17 CET
it worked for me
Reply | Permalink
--disable-valias
Eric May 16, 2017 01:21 CET
Hi Roberto,
As far I know and dovecot-lda is concerned it is not the presence of the configuration flag --enable-valias that hinders dovecot LDA from delivering to aliases it is the absence of a .qmail-'alias' alias file
Eric
Reply | Permalink
if the aliases are stored in
roberto puzzanghera Eric May 16, 2017 16:15 CET
if the aliases are stored in the database, why the .qmail-alias is needed?
Reply | Permalink
valias
Eric roberto puzzanghera May 16, 2017 22:42 CET
Hi Roberto,
I was only trying to point out that dovecot-lda is not affected by the --disable-valias/--enable-valias flags. On the other hand vdelivermail is affected and will use dot-qmail files in one case and the virtual alias database in the other case.
Dovecot-lda and --enable-valias can live quite happily together as long as you use dot-qmail files for you aliases.
Eric
Reply | Permalink
I agree. I will clarify this
roberto puzzanghera Eric May 17, 2017 16:23 CET
I agree. I will clarify this in the lines above
Reply | Permalink
libev Version changed
Tiago Oliveira de Jesus November 9, 2016 17:41 CET
Hi Roberto!
The libev 4.11 not exits, this changed to 4.22, at link http://dist.schmorp.de/libev/libev-4.22.tar.gz
Reply | Permalink
Permission issue on tcp.*
Wlad January 9, 2016 06:51 CET
First of all, Roberto - THANK YOU for taking the time to put this resource together! I've formerly used JMS' tutorials etc but that was years ago. Once qmail etc is set up and working, you almost never have to touch it again except for security updates or maintenance so it's easy to forget the inner workings!
I have everything going so far but haven't been able to get passed the testing stages; When I telnet to 587, the logs for qmail-submission gives me this:
Can you please confirm what the perms are supposed to be? Right now they're owned by root at 644. Any pointers on this would be greatly appreciated!!
Reply | Permalink
Hi Wlad,
roberto puzzanghera Wlad January 9, 2016 10:11 CET
Hi Wlad,
yes the priviledges are correct. It's strange because every user should be able to read that file..
Anyway, who is the user who runs qmail-smtpd and qmail-submission? If you migrated from JMS configuration you may have to check/adjust the priviledges of the ~vpopmail/ dir. In particular I suggest to check if the vpopmail:vchkpw userIDs are 89:89 (if I remember well JMS configuration uses non standard IDs for users..).
Reply | Permalink
Ok... I feel stupid.
Wlad roberto puzzanghera January 9, 2016 16:49 CET
Ok... I feel stupid. ~vpopmail main dir was owned by root:root grrrr. Works now. ALL those dang hours - that happens when it's late, going on no sleep :) Again Roberto, thank you for this great guide! Lots of Coffee incoming to you haha
Reply | Permalink
ps -ef|grep qmail
Wlad roberto puzzanghera January 9, 2016 16:41 CET
Wow long/ugly past - but all ownerships seem fine from looking at this and I'm perplexed. As for JMS, that was years ago on a separate server. I founds this guide last night and like the fact that things can be updated with the most current - in regards to paches etc. Versions of other sources:
And yes, id -g/-u vpopmail:vchkpw are both 89; I've turned every kind of permission based type of app off (apparmor for instance), every firewall etc etc with no change. I got no errors during compilation and did everything step by step and in order on this brand new server running ubuntu with multiple IPs. Speaking of IPs that was something I was going to ask about as well on how to specifically bind 587/25 to a specific IP but as long as MX records are set up properly there shouldn't be a need for that.
Roberto, sorry about the long post - just trying to figure this one out as everything seems to be running fine and like you said perms are right...
Reply | Permalink
Charset?
Anonymous July 3, 2014 08:24 CET
Hello,
Some clients change their passwords with non-ascii char like "?š??žýáíé", but these characters are broken in MySQL as clear passwords. Any idea what charset set to Mysql db or how to set vpopmail to use UTF-8? Everythink else is in UTF...
Anyway if i do /home/vpopmail/bin/vuserinfo user@domain.cc clear password is ok, but in MySQL
Reply | Permalink
Hi, which tool are you using
roberto puzzanghera Anonymous July 3, 2014 18:42 CET
Hi, which tool are you using to change the pwd? I can use UTF8 characters here when connecting via imap/roundcube pwd plugin, but if I try with qmailadmin I get an error...
PS: and I can retrieve the clear pwd with an SQL query
Reply | Permalink
Solved :)It was
Anonymous roberto puzzanghera July 4, 2014 08:23 CET
Solved :)
It was misconfigured MySQL. I have no idea what charset did connection use when it was not configured but when I set this to my.cnf it start working correctly
Other problem is password from outlook... But I think there is no solution for clients using non UTF8 charset...
Reply | Permalink
Vpopmail configure
winnetou April 26, 2014 00:14 CET
Hello!
While running ./configure on Gentoo systems (probably on other systems also) you have to add following options:
Vpopmail works also with MariaDB 5.5.37
BTW THX for great tutorial ;)
Best Regards
Winnetou
Reply | Permalink
Hello Winnetou This
roberto puzzanghera winnetou April 26, 2014 08:56 CET
Hello Winnetou
This is the default location for mysql and mariadb, and I suppose that normally you don't even need to add those options, as the library will be automatically found. I just added them for those (like me) who compile from source or don't use the package provided by their own distro
Reply | Permalink
Hello! I'm aware that
winnetou roberto puzzanghera April 26, 2014 09:28 CET
Hello!
I'm aware that those paths are default and ./configure should find them, but it didn't, that's why I decided to post a comment ;)
When I run ./configure without those 2 optins it failed. I was installing qmail and vpopmail on freshly installed Gentoo
Reply | Permalink
If I understand well,
roberto puzzanghera winnetou April 26, 2014 09:42 CET
If I understand well, omitting those two options gets vpopmail not to find the libraries?
Anyway as soon as possible I will add a clarification on the purpose
Reply | Permalink
I am installing vpopmail and
Anonymous November 11, 2013 06:13 CET
I am installing vpopmail and vusaged on CentOS release 6.4 (Final)
but i encountered the error on vusaged.
What is the problem? I am googling bu i couldn't found the solution.
please help me!!
Reply | Permalink
can you dostrace
roberto puzzanghera Anonymous November 11, 2013 12:25 CET
can you do
and see what happens?
Reply | Permalink
it works now
Anonymous roberto puzzanghera January 21, 2014 04:22 CET
It works now. I uninstalled the libev source then installed libev using yum rpmforge repository.
Sorry for the late reply. I totally forgot about this. I gave up last time and set up qmailtoaster on Centos 6 which was successful.
Now, I am experimenting qmail again using this setup. :)
Reply | Permalink