(PHP 4 >= 4.0.2, PHP 5)
ezmlm_hash — Calculate the hash value needed by EZMLM
ezmlm_hash() calculates the hash value needed when keeping EZMLM mailing lists in a MySQL database.
The email address that's being hashed.
The hash value of addr.
Example #1 Calculating the hash and subscribing a user
$user = "email@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // using PHPLIB db interface
ezmlm will add a user to the list from a mail() call if you use the -f extra flag in the function.
The extra flag being a -t followed by no space and the email address you want the email to appear as though it's being sent from. I spent hours messing with this to try to allow users to sign up for my mailing list by marking a check box while signing up on my site, ezmlm ignored everything until I threw that extra parameter in there.
Hope this helps.
This is really ezmlm documentation, but I certanly would have been happy if I found it anywhere during my time of trial. I am not a Linux expert, as you probably will notice, so things I do/did that might sound incredibly stupid to those who do know. I blame hard-to-find documentation :)
I wanted a page where a visitor could add their address to my mailinglist. That shouldn't be too hard, or atleastso I thought...
First I tried mailing the mailinglist. For some reason, the mailinglist didn't see my "From:" -header and it failed miserably.
Then I tried to use system() to call ezmlm-sub, which only produced the error-code 111. That was an access problem. So, I tried making the mailinglist availible to the website, but the change in permissions caused the mailserver to malfunction (as opposed to mailfunction....). It took a while to sort that mess out.
I couldn't find any guide as howto add mysql-support. The big problem was how to know which tables was needed. Apperantly, this is all that is needed:
ezmlm-mktab listname | mysql -u root -p databasename
Then its just adding the mailinglist with mysql-support i qmailadmin. It doesn't seem to allow socket connection to the database, so iptables has to allow local connections to the mysql port.
Hope this helps someone.