0

我有一个拥有 2k+ 用户的数据库,我想向他们发送他们自己的密码,但要大量通过电子邮件发送给他们。群发电子邮件可以通过多种方式完成,但问题是如何做到这一点,以便每个用户都获得他/她自己的唯一密码?

用户密码存储在 MySQL DB 的字段中。电子邮件地址也是如此。

欣赏任何想法。

4

3 回答 3

6

我想向他们发送他们自己的密码

NOOOOOOO请不要

参见例如耻辱的密码政策大厅

以纯文本形式存储密码是不安全的。

是时候让在线服务清理他们的行为了!

另外:plaintextoffenders.com - “你刚刚给我发回了我自己的密码吗?!”

通过电子邮件发送明文密码被认为是一种非常非常糟糕的做法。密码应该是散列的;所有用户都应该能够通过E-Mail 获得一个链接来重置它。

不过,要回答您的问题,您必须浏览每条记录,并向每位客户发送自定义电子邮件。这可能是资源密集型的,和/或如果一次有太多消息会导致机器停机,因此您必须在发送每束消息之间等待。您还可以使用像MailChimp这样的 3rd 方服务。

于 2013-01-23T10:22:18.273 回答
1

这种方法有什么问题(伪代码):

$result = sql_query ("SELECT id, email, username, password FROM users"); // get all users

$mailer = new SomeMailer();
while ($row = sql_fetch_row($result)) {
    $mailer->AddRecipient($row['email']);
    $mailer->AddBody("Hey, here is you pass LOL: " . $row['password']);
    $mail->Send();
}

这就是你通常可以做到的方式,但我建议你认真对待Pekka的建议。以纯文本形式发送密码是一个很大的禁忌。

于 2013-01-23T10:27:57.007 回答
0

Well, I found the most flexible and easiest way to get this done is by using MailMerge inside MS WORD and then send out the messages.

Microsoft Word --> Mailings You have to extract the required data fields from the db and save them as an MS Excell file.

于 2013-01-23T11:44:59.103 回答