PHP订阅者邮件列表

时间:2010-09-29 14:04:56

标签: php mailing-list subscribe

我需要为我正在构建的校友网站创建一个邮件列表。以下是我理想的邮件列表运行方式。

用户
用户可以访问该网站,在字段中输入他们的电子邮件地址(可能还有姓/名),单击“订阅”按钮,然后获取验证消息(通过弹出,重定向或电子邮件消息) 。

网站管理员
已成功订阅的每个电子邮件地址(和名称)将编译为服务器上的文本文档或组电子邮件地址。然后,经理可以使用管理员密码登录以将批量电子邮件发送到订户列表(例如http://justincross.net/stuff/join2.php),或者管理员可以通过电子邮件从G-Mail帐户发送电子邮件。

有谁知道如何有效地做到这一点?我已经搜索了一些教程/模板的日子,但是我尝试过的极少数似乎要么被破坏,要么使用mySQL(我不想这样做)。

提前致谢!

1 个答案:

答案 0 :(得分:1)

数据库方式确实是最好的方式。如果您更喜欢使用文本文件方法,我会建议这样的事情:

将数据插入文件

$email = "the email";
$firstName = "the first name";
$lastName = "the last name";

$new_line = "$email|$firstName|$lastName\n"; // |  could be other character

$file = fopen("subscribers.txt", "a");
fputs($file, $new_line);
fclose($file);

阅读和解析数据

$subscribers = array();

$handle = @fopen("subscribers.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $line = fgets($handle, 4096);

        //parsing the line
        $ar = explode('|', $line);

        //$ar[0] holds the email
        if(key_exists(0, $ar)){
          $email = $ar[0];
        }else{
          $email= '';
        }

        //$ar[1] holds the first name
        if(key_exists(1, $ar)){
          $firstName = $ar[1];
        }else{
          $firstName = '';
        }

        //$ar[2] holds the last name
        if(key_exists(2, $ar)){
          $lastName = $ar[2];
        }else{
          $lastName = '';
        }

        $temp = array(
          'email' => $email,
          'firstName' => $firstName,
          'lastName' => $lastName
        );

        $subscribers[] = $temp;
        //

    }
    fclose($handle);
}

用于循环订阅者并使用您的功能发送电子邮件

foreach($subscribers as $subscriber){
    //the email
    $subscriber['email'];

    //the firstname
    $subscriber['firstName'];

    //the lastname
    $subscriber['lastName'];
}