Install Ezmlm-idx
EZmlm-idx is a nice mailing list add-on to Qmail. When we install Qmailadmin later on, you'll see that EZmlm-idx integrates seamlessly into Qmailadmin to provide a very user friendly mailing list management interface. As an added bonus, Vpopmail (which we will install as well) will let you control what users can and cannot use mailing lists! Can't beat that! Its home page is here: http://www.ezmlm.org/
tar zxvfp ezmlm-idx-7.2.2.tar.gz
Edit the files /downloads/ezmlm-idx-7.2.2/conf-ld and replace the first line by :
ln -s /downloads/ezmlm-idx-7.2.2/lang/en_US /downloads/ezmlm-idx-7.2.2/lang/default
make clean
make; make man
./ezmlm-test
To use a language other than US English as the default for list texts, edit the file /downloads/ezmlm-idx-7.2.2/conf-lang and change the first line to one of the ISO language designations found in the /downloads/ezmlm-idx-7.2.2/lang directory.
You should have an answer like this :
Using subdb plugin: std
ezmlm-reject: OK
ezmlm-[un|is]sub[n]: OK
ezmlm-checksub: OK
ezmlm-send: OK
ezmlm-tstdig: OK
ezmlm-weed: OK
ezmlmrc contents: OK
ezmlm-clean: OK
ezmlm-store: OK
ezmlm-return: OK
ezmlm-warn (1/2): OK
ezmlm-manage (1/2): OK
ezmlm-request: OK
ezmlm-split: OK
ezmlm-gate: OK
ezmlm-idx: OK
ezmlm-get (index): OK
ezmlm-get (get): OK
ezmlm-get (thread): OK
ezmlm-get (digest): OK
ezmlm-manage (2/2): OK
ezmlm-moderate: OK
ezmlm-warn (2/2): OK
ezmlm-archive: OK
ezmlm-dispatch: OK
dispatch editor: OK
decode sender: OK
Verifying message header and body contents...
flags and substs: OK
messages: OK
subscribe probe: OK
unsubscribe probe: OK
subscribe: OK
unsubscribe: OK
moderated subscribe: OK
moderated unsub: OK
subscribe by mod: OK
unsubscribe by mod: OK
copylines: OK
ezmlm-send: OK
Cleaning up...
Create the needed Database.
The used MySQL_root_password should be the password chosen on pre-step 3. It's should not be the same as the password for ezmlmuser (EZMLM_PASSWORD).
It's not a typo, the MySQL_root_password should really be just aside the -p
CREATE DATABASE ezmlm;
GRANT ALL PRIVILEGES ON ezmlm.* TO ezmlmuser@localhost IDENTIFIED BY 'EZMLM_PASSWORD';
FLUSH PRIVILEGES;
quit;
Test the account you have just created
You should have such response
Your MySQL connection id is 1073
Server version: 5.5.47-0+deb8u1 (Debian)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>exit;
Install and test the mysql support
make mysql
./ezmlm-test -s mysql -u ezmlmuser -p EZMLM_PASSWORD -h localhost
You should have an answer like this :
Using subdb plugin: mysql
ezmlm-reject: err with text after boundary: 0.30 bug fixed in 0.322
ezmlm-reject: OK
ezmlm-[un|is]sub[n]: OK
ezmlm-checksub: OK
ezmlm non-SQL: OK
ezmlm SQL: OK
...
Cleaning up...
Finalize the install
cp /downloads/ezmlm-idx-7.2.2/ezmlm-cgi /usr/lib/cgi-bin/
chmod 4555 /usr/lib/cgi-bin/ezmlm-cgi
Ezmlm-0.53 is a qmail-based mailing list manager written by Dan J. Bernstein (qmail's author) ; ezmlm-idx originated as an add-on to it. It now exists as a complete package on its own, but can still be considered essentially as an extension to ezmlm.
You can find the complete manual on http://untroubled.org/ezmlm/manual/
Users comments
I just want to reiterate Loke's commnet -
Problem was caused by the use of a $ sign in the password.
I didn't have any trouble passing the test, butstarting mySQL with the password on the command line would not work at all AND when I got to testing courier authorization absolutely nothing would work.
When using a password with special characters, the ezmlm-test command cannot be run. MySQL works well (you can do -p'p@s$w0rd~!`' - but ezmlm-test doesn't facilitate this.
To solve, change the password to something simpler, in MySQL
mysql -u root -pMySQL_root_password
SET PASSWORD FOR 'ezmlmuser@localhost'=PASSWORD('new password')
Flush privileges;
quit;
Problem solved!
Problem was caused by the use of a $ sign in the password.
Hi Thibs,
Since my Ubuntu server is updated to 16.04.2 LTS and MYSQL is updated to 5.7.17 I see an issue in the "Install and test the mysql support" part of this description. The test responds with:
shell:/downloads/ezmlm-idx-7.2.2$ sudo ./ezmlm-test -s mysql -u ezmlmuser -p ******** -h localhost
getconfopt library: OK
ezmlm-make: OK
Using subdb plugin: mysql
ezmlm-make: fatal: creating subscriber tables failed: Access denied for user 'ezmlmuser'@'localhost' (using password: YES)
ezmlm-make failed to add subdb config info
This issue may be related to a change in MySQL: on the command line it does not accept the password anymore. It needs to be entered after the password prompt. (additional security I guess :-) )
Section 4.1 of RefMan MySQL 5.7 gives as the only option:
shell> mysql -h host -u user -p
Enter password: ********
So that needs also an update in the section "Test the account you have just created".
Any idea how to solve this issue? Thanks!
Hello Geek77
It's probably due to the fact one of your subscriber has been infected. This infection causes random messages to be sent to random contact (randomly found in the mails in its mailbox)
Hi thibs
my mailing list subscriber get emails like this "technical@mydomain.com; on behalf of; Sam [sam@mydomain.com]". Could you please help me to get rigid of "on behalf of" .... message from mailing list header.
thanks
Hi,
In order for ezmlm-idx-7.2.2 to function correctly you need to add/correct in "/downloads/ezmlm-idx-7.2.2/conf-ld" the following: "cc -g -export-dynamic -B /usr/lib/mysql/". This is needed in order for ezmlm-make to work with "/usr/local/lib/ezmlm/sub-std.so".
My problem come to language.
Even after edit file conf-lang, this not work
In en_US, this work fine
On debian Wheezy
i have this issue :
sudo make mysql
./libcompile messages.c
In file included from messages.c:22:0:
messages-txt.c:2:1: error: expected ‘,’ or ‘;’ before ‘TXT_ONLY_SUBSCRIBERS’
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘@’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘351’ in program
messages-txt.c:2:1: error: stray ‘352’ in program
messages-txt.c:2:1: error: stray ‘351’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘@’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
messages-txt.c:2:1: error: stray ‘#’ in program
In file included from messages.c:22:0:
messages-txt.c:3:26: warning: character constant too long for its type [enabled by default]
messages-txt.c:3:1: error: stray ‘351’ in program
messages-txt.c:3:1: error: stray ‘351’ in program
messages-txt.c:3:1: error: stray ‘351’ in program
messages-txt.c:3:1: error: stray ‘#’ in program
messages-txt.c:3:1: error: stray ‘#’ in program
messages-txt.c:3:1: error: stray ‘@’ in program
messages-txt.c:3:1: error: stray ‘#’ in program
messages-txt.c:3:1: error: stray ‘#’ in program
make: *** [messages.lo] Error 1
Kristian :
Is the file /usr/local/bin/ezmlm/ezmlm-send existing ?
If yes, did you make change to the permission of the /tmp folder ?
Hello Thibs!
I was hoping you could help me out, when i try to install ezmlm everything looks okay until i run the ./ezmlm-test
subscribe by mod: OK unsubscribe by mod: OK copylines: OK ezmlm-send: failed to produce post
Any idea? I have tried to reinstall and both 7.1.1 and 7.2.2 :(
Okay Percona is also working for me:
You can replace the bindings and check (find . -type f | xargs grep -si "lmysqlclient") before you configure a package source if there is any mysqlclient params and replace these like this:
#> find . -type f -exec sed -i 's/ -lmysqlclient / -lperconaserverclient /g' {} \;
ps: of course you need the percona dev package.
What a pity! Seems not to work with percona instead of mysql? Does anybody know how t fix this?
# ./ezmlm-test
getconfopt library: OK
ezmlm-make: OK
Using subdb plugin: std
ezmlm-reject: OK
ezmlm-[un|is]sub[n]: OK
ezmlm-checksub: OK
ezmlm-send: OK
ezmlm-tstdig: OK
ezmlm-weed: OK
ezmlmrc contents: OK
ezmlm-clean: OK
ezmlm-store: OK
ezmlm-return: OK
ezmlm-warn (1/2): OK
ezmlm-manage (1/2): OK
ezmlm-request: OK
ezmlm-split: OK
ezmlm-gate: OK
ezmlm-idx: OK
ezmlm-get (index): OK
ezmlm-get (get): OK
ezmlm-get (thread): OK
ezmlm-get (digest): OK
ezmlm-manage (2/2): OK
ezmlm-moderate: OK
ezmlm-warn (2/2): OK
ezmlm-archive: OK
ezmlm-dispatch: OK
dispatch editor: OK
decode sender: OK
Verifying message header and body contents...
flags: OK
substitutions: OK
messages: OK
subscribe nop: OK
unsubscribe nop: OK
subscribe probe: OK
unsubscribe probe: OK
subscribe: OK
unsubscribe: OK
moderated subscribe: OK
moderated unsub: OK
subscribe by mod: OK
unsubscribe by mod: OK
copylines: OK
ezmlm-send: OK
ezmlm-send (from): OK
ezmlm-send trailer: OK
omitbottom (-manage): OK
omitbottom (-get): OK
Cleaning up...
[...]
#> make mysql
./libcompile sub-mysql.c
./libcompile sub_sql.c
( ( ./compile trylib.c && ./load trylib -lnsl ) >/dev/null 2>&1 && echo -lnsl || exit 0 ) >nsl.lib
rm -f trylib.o trylib
( ( ./compile trylib.c && ./load trylib -lm ) >/dev/null 2>&1 && echo -lm || exit 0 ) >m.lib
rm -f trylib.o trylib
./makeso sub-mysql.so sub-mysql.lo sub_sql.lo -lezmlm -lmysqlclient `cat nsl.lib` `cat m.lib`
/usr/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
make: *** [sub-mysql.so] Error 1
On Debian 7 :
cp /usr/include/mysql/mysql.h /downloads/ezmlm-idx-7.1.1
make mysql
Hello Bert,
I think it's because you forgot ton install the package "libmysqlclient-dev" as described on package-install.php
Hello,
When I try to install and test the mysql support, I get:
make mysql
( cat warn-auto.sh; \
echo CC=\'`head -n 1 conf-cc`\'; \
echo CCLO=\'`head -n 1 conf-cclo`\'; \
echo LD=\'`head -n 1 conf-ld`\'; \
echo LDSO=\'`head -n 1 conf-ldso`\'; \
) > auto-ccld.sh
cat auto-ccld.sh make-makeso.sh > make-makeso
chmod 755 make-makeso
cat auto-ccld.sh find-systype.sh > find-systype
chmod 755 find-systype
./find-systype > systype
( cat warn-auto.sh; ./make-makeso "`cat systype`" ) > makeso
chmod 755 makeso
cat auto-ccld.sh make-libcompile.sh > make-libcompile
chmod 755 make-libcompile
( cat warn-auto.sh; ./make-libcompile "`cat systype`" ) > libcompile
chmod 755 libcompile
cat auto-ccld.sh make-compile.sh > make-compile
chmod 755 make-compile
( cat warn-auto.sh; ./make-compile "`cat systype`" ) > compile
chmod 755 compile
./choose c tryattribute hasattribute.h1 hasattribute.h2 > hasattribute.h
cat auto-ccld.sh make-load.sh > make-load
chmod 755 make-load
( cat warn-auto.sh; ./make-load "`cat systype`" ) > load
chmod 755 load
( ( ./compile tryulong32.c && ./load tryulong32 && ./tryulong32 ) >/dev/null 2>&1 \
&& cat uint32.h2 || cat uint32.h1 ) > uint32.h
rm -f tryulong32.o tryulong32
./libcompile sub-mysql.c
sub-mysql.c:30:19: error: mysql.h: No such file or directory
sub-mysql.c:31:26: error: mysqld_error.h: No such file or directory
sub-mysql.c: In function '_closesub':
sub-mysql.c:64: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:64: error: (Each undeclared identifier is reported only once
sub-mysql.c:64: error: for each function it appears in.)
sub-mysql.c:64: error: expected expression before ')' token
sub-mysql.c:65: error: expected expression before ')' token
sub-mysql.c: In function '_opensub':
sub-mysql.c:72: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:72: error: expected expression before ')' token
sub-mysql.c:73: error: expected expression before ')' token
sub-mysql.c:75: error: expected expression before ')' token
sub-mysql.c:77: error: expected expression before ')' token
sub-mysql.c: In function 'safe_query':
sub-mysql.c:84: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:84: error: expected expression before ')' token
sub-mysql.c:85: error: expected expression before ')' token
sub-mysql.c: At top level:
sub-mysql.c:88: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
sub-mysql.c: In function '_checktag':
sub-mysql.c:106: error: 'MYSQL_RES' undeclared (first use in this function)
sub-mysql.c:106: error: 'result' undeclared (first use in this function)
sub-mysql.c:107: error: 'MYSQL_ROW' undeclared (first use in this function)
sub-mysql.c:107: error: expected ';' before 'row'
sub-mysql.c:121: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:121: error: expected expression before ')' token
sub-mysql.c:122: error: expected expression before ')' token
sub-mysql.c:123: error: expected expression before ')' token
sub-mysql.c:124: error: expected expression before ')' token
sub-mysql.c:125: error: 'row' undeclared (first use in this function)
sub-mysql.c:129: error: expected expression before ')' token
sub-mysql.c:143: error: expected expression before ')' token
sub-mysql.c:144: error: expected expression before ')' token
sub-mysql.c:145: error: expected expression before ')' token
sub-mysql.c:146: error: expected expression before ')' token
sub-mysql.c:149: error: expected expression before ')' token
sub-mysql.c: In function '_issub':
sub-mysql.c:164: error: 'MYSQL_RES' undeclared (first use in this function)
sub-mysql.c:164: error: 'result' undeclared (first use in this function)
sub-mysql.c:165: error: 'MYSQL_ROW' undeclared (first use in this function)
sub-mysql.c:165: error: expected ';' before 'row'
sub-mysql.c:191: error: 'row' undeclared (first use in this function)
sub-mysql.c:197: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:197: error: expected expression before ')' token
sub-mysql.c:201: error: expected expression before ')' token
sub-mysql.c: In function '_logmsg':
sub-mysql.c:239: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:239: error: expected expression before ')' token
sub-mysql.c:240: error: expected expression before ')' token
sub-mysql.c:240: error: 'ER_DUP_ENTRY' undeclared (first use in this function)
sub-mysql.c:241: error: expected expression before ')' token
sub-mysql.c: In function '_putsubs':
sub-mysql.c:256: error: 'MYSQL_RES' undeclared (first use in this function)
sub-mysql.c:256: error: 'result' undeclared (first use in this function)
sub-mysql.c:257: error: 'MYSQL_ROW' undeclared (first use in this function)
sub-mysql.c:257: error: expected ';' before 'row'
sub-mysql.c:274: error: 'row' undeclared (first use in this function)
sub-mysql.c:277: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:277: error: expected expression before ')' token
sub-mysql.c:282: error: expected expression before ')' token
sub-mysql.c: In function '_searchlog':
sub-mysql.c:295: error: 'MYSQL_RES' undeclared (first use in this function)
sub-mysql.c:295: error: 'result' undeclared (first use in this function)
sub-mysql.c:296: error: 'MYSQL_ROW' undeclared (first use in this function)
sub-mysql.c:296: error: expected ';' before 'row'
sub-mysql.c:320: error: 'row' undeclared (first use in this function)
sub-mysql.c:322: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:322: error: expected expression before ')' token
sub-mysql.c:326: error: expected expression before ')' token
sub-mysql.c: In function '_subscribe':
sub-mysql.c:352: error: 'MYSQL_RES' undeclared (first use in this function)
sub-mysql.c:352: error: 'result' undeclared (first use in this function)
sub-mysql.c:353: error: 'MYSQL_ROW' undeclared (first use in this function)
sub-mysql.c:353: error: expected ';' before 'row'
sub-mysql.c:397: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:397: error: expected expression before ')' token
sub-mysql.c:398: error: expected expression before ')' token
sub-mysql.c:399: error: 'row' undeclared (first use in this function)
sub-mysql.c:402: error: expected expression before ')' token
sub-mysql.c:403: error: expected expression before ')' token
sub-mysql.c:407: error: expected expression before ')' token
sub-mysql.c:408: error: expected expression before ')' token
sub-mysql.c:418: error: expected expression before ')' token
sub-mysql.c:419: error: expected expression before ')' token
sub-mysql.c:434: error: expected expression before ')' token
sub-mysql.c:463: error: expected expression before ')' token
sub-mysql.c: In function '_tagmsg':
sub-mysql.c:499: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:499: error: expected expression before ')' token
sub-mysql.c:500: error: expected expression before ')' token
sub-mysql.c:500: error: 'ER_DUP_ENTRY' undeclared (first use in this function)
sub-mysql.c:501: error: expected expression before ')' token
sub-mysql.c: In function 'create_table':
sub-mysql.c:515: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:515: error: expected expression before ')' token
sub-mysql.c:516: error: expected expression before ')' token
sub-mysql.c:516: error: 'ER_TABLE_EXISTS_ERROR' undeclared (first use in this function)
sub-mysql.c:517: error: expected expression before ')' token
sub-mysql.c: In function 'remove_table':
sub-mysql.c:607: error: 'MYSQL' undeclared (first use in this function)
sub-mysql.c:607: error: expected expression before ')' token
sub-mysql.c:608: error: expected expression before ')' token
sub-mysql.c:608: error: 'ER_BAD_TABLE_ERROR' undeclared (first use in this function)
sub-mysql.c:609: error: expected expression before ')' token
make: *** [sub-mysql.lo] Error 1
Any idea how to fix this
Thanks Thibs.
I just removed Ezmlm-idx and re installed. It works now.
Thank you so much for Updating and maintaining this awesome website.
You've probably missed the line
ln -s /downloads/ezmlm-idx-7.1.1/lang/en_US/ /downloads/ezmlm-idx-7.1.1/lang/default
Or edit /downloads/ezmlm-idx-7.1.1/conf-lang
I've already noticed that it fails with some non english language .. so first try with en_US
I am getting the below pasted error while running. /ezmlm-test . Kindly guide me
root@debian:/downloads/ezmlm-idx-7.1.1# ./ezmlm-test getconfopt library: OK ezmlm-make: OK Using subdb plugin: std ezmlm-reject: OK ezmlm-[un|is]sub[n]: OK ezmlm-checksub: OK ezmlm-send: OK ezmlm-tstdig: OK ezmlm-weed: OK ezmlmrc contents: OK ezmlm-clean: OK ezmlm-store: OK ezmlm-return: OK ezmlm-warn (1/2): OK ezmlm-manage (1/2): OK ezmlm-request: OK ezmlm-split: OK ezmlm-gate: OK ezmlm-idx: OK ezmlm-get (index): OK ezmlm-get (get): OK ezmlm-get (thread): OK ezmlm-get (digest): OK ezmlm-manage (2/2): OK ezmlm-moderate: OK ezmlm-warn (2/2): OK ezmlm-archive: OK ezmlm-dispatch: OK dispatch editor: ezmlm-make: fatal: unable to stat /downloads/ezmlm-idx-7.1.1/lang/default: file does not exist decode sender: OK Verifying message header and body contents... ezmlm-make: fatal: unable to stat /downloads/ezmlm-idx-7.1.1/lang/default: file does not exist ezmlm-make failed
when you're editing conf-ld file be sure "cc -g -B /usr/lib/mysql/" is on the first line. It gives an error message if you accidently hit enter while you editing the file and move the line one below.
now, you can download ezmlm form https://untroubled.org/ezmlm