我有一个拥有 2k+ 用户的数据库,我想向他们发送他们自己的密码,但要大量通过电子邮件发送给他们。群发电子邮件可以通过多种方式完成,但问题是如何做到这一点,以便每个用户都获得他/她自己的唯一密码?
用户密码存储在 MySQL DB 的字段中。电子邮件地址也是如此。
欣赏任何想法。
我想向他们发送他们自己的密码
NOOOOOOO请不要
参见例如耻辱的密码政策大厅:
以纯文本形式存储密码是不安全的。
是时候让在线服务清理他们的行为了!
另外:plaintextoffenders.com - “你刚刚给我发回了我自己的密码吗?!”
通过电子邮件发送明文密码被认为是一种非常非常糟糕的做法。密码应该是散列的;所有用户都应该能够通过E-Mail 获得一个链接来重置它。
不过,要回答您的问题,您必须浏览每条记录,并向每位客户发送自定义电子邮件。这可能是资源密集型的,和/或如果一次有太多消息会导致机器停机,因此您必须在发送每束消息之间等待。您还可以使用像MailChimp这样的 3rd 方服务。
这种方法有什么问题(伪代码):
$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的建议。以纯文本形式发送密码是一个很大的禁忌。
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.