• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ezmlm_hash()

    (PHP 4 >= 4.0.2, PHP 5, PHP 7)

    计算 EZMLM 所需的散列值

    说明

    ezmlm_hash(string $addr): int

    ezmlm_hash()计算用于在 MySQL 数据库中保存 EZMLM 邮件列表的散列值。

    参数

    $addr

    要进行散列算法的电子邮件地址。

    返回值

    $addr的散列值。

    范例

    计算散列值并订阅一个用户

    <?php
    $user = "joecool@example.com";
    $hash = ezmlm_hash($user);
    $query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
    $db->query($query); // using PHPLIB db interface
    ?>
    
    EZ Mailing List Manager (EZMLM) is a mailing list manager which allows users to create their own mailing lists with a single command. 
    It seems to require qmail.
    See:
    http://www.ezmlm.org/
    http://www.qmail.org/top.html#ezmlm
    ezmlm will add a user to the list from a mail() call if you use the -f extra flag in the function.
    Example:
    mail($to,$title,$email,$headers,"-tfromemail@example.com");
    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.

    下篇:mail()