2013-01-23 97 views
0

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

用户密码存储在MySQL数据库中的一个字段内。电子邮件地址也是如此。

欣赏任何想法。

+1

该数据库的域名是什么;-) –

+2

您不能发送具有不同内容的单个邮件。您必须发送邮件,以循环方式更改每个用户所需的内容。 – Rikesh

+0

我同意Rikesh,我也建议你发送给用户一个包含链接的消息。该链接将把他们带到应用程序页面,在那里他们可以获得他们当前的密码 –

回答

6

我想送他们自己的密码

NOOOOOO请不要

SEEE例如Password policy hall of shame

在普通文本中存储密码是不安全的。

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

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

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

要回答你的问题,你必须通过每条记录,并发送一个自定义的电子邮件给每个客户。这可能是资源密集型的,并且/或者如果一次有太多的信息会导致机器停机,所以你必须在发送每一组之间等待。您也可以使用第三方服务,如MailChimp

+0

谢谢,但是我意识到风险,这不是一个真实的网站,它是一个私人项目。密码的发送方式也无关紧要。 –

+0

@Johan够公平的。在这种情况下,你只需简单地发送每条消息......你的MailMerge思路也不错,因为这大概会分配一些负载。太好了! –

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(); 
} 

那你是怎么一般可以做到这一点,我建议你采取佩卡的建议虽然严重。以纯文本发送密码是一个很大的禁忌。

0

那么,我发现最灵活和最简单的方法来完成这是通过使用MS WORD内的MailMerge,然后发出消息。

Microsoft Word - >邮件 您必须从数据库中提取所需的数据字段并将其保存为MS Excell文件。