2016-11-07 153 views
0

好的我在我的網站上註冊了通過電子郵件激活帳戶的激活帳戶,我注意到並非所有成員都激活了他們的帳戶,所以如果帳戶是自動發送給他們的帳戶7天內未激活從我希望每天一次運行該代碼註冊如何發送自動電子郵件給沒有激活帳戶的成員

的時間,但如果它被送到一個用戶,然後下次就不會再發送電子郵件到同一個用戶避免垃圾郵件

這裏我到目前爲止寫了什麼,但我不知道如何實現其餘的

$query = "SELECT * FROM members WHERE active !='Yes' AND (joined > DATE_SUB(NOW(), INTERVAL 7 DAY))"; 
     $stmt->execute(); 
     $result = $stmt->fetch(); 


     foreach ($result as $row) { 

     $id = $row['member_id']; 
     $to = $row['email']; 
     $activation = $row['active']; 

     $subject = "Account Activation"; 
     $body = "<p><img src='".DIR."images/logo.png' alt='logo'></p> <p>Hello,</p><p>Thank you for registering at ".SITEURL.".</p> 
     <p>It seems you have still not activated you account, to activate your account, please click on this link: <a href='".DIR."activate.php?x=$id&y=$activation'>CLICK HERE</a>. If you do not activate your account within 7 days your account will automatically get deleted. </p> 
     <p>Regards,<br/>".SITEURL."<br/><a href='tel:".SITEMOBILE."'>".SITEMOBILE."</a></p> 
     <p align='center'><small><font color='red'>This is an automated message, please do not reply to this.</font></small></p>"; 

     $mail = new Mail(); 
     $mail->setFrom(REGEMAIL); 
     $mail->addAddress($to); 
     $mail->subject($subject); 
     $mail->body($body); 
     $mail->send(); 

     } 

您的時間和幫助非常感謝

+0

這似乎是一個cronjob – rbr94

+0

也爲根據自己尊敬的ID和激活散怎麼做,發送電子郵件給用戶的查詢問題? –

+0

E.g.在你的數據庫中創建一個表,你在哪裏登錄電子郵件發送 – rbr94

回答

-1

您的上述代碼是確定的。它運作良好。你需要在「members」表中創建一個新的列,比如「sent_activation_email」,然後當cronjob運行這個字段時應該更新。

所以你的檢索查詢修改如下:

$query = "SELECT * FROM members WHERE active !='Yes' AND (joined > DATE_SUB(NOW(), INTERVAL 7 DAY)) AND sent_activation_email != 0"; 

您$ MAIL-後>發送()函數寫一個更新查詢。

....... 

$mail->subject($subject); 
$mail->body($body); 
$mail->send(); 

$sql = mysql_query("UPDATE `members` SET `sent_activation_email` = '1' WHERE `id` = ".$row['member_id'].") "; 
+0

哇令人驚歎的感謝aton伴侶欣賞它 –

+0

@johram乒乓 - 你能投票給我的回答:) –

+0

橙色圖標吧?我做到了 –

相關問題