2013-01-23 62 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文件。