0
我有一個'用戶評論'的數據庫,其中包含評論,userId,如果他們想通過電子郵件發送true/false。發送電子郵件給用戶,檢查'是' - php和modx
我的問題是,如果用戶對帖子評論5次,他們在該數據庫中5次,因此,他們得到5個相同的電子郵件。這裏是我的設置:
查找數據庫中的用戶希望通過電子郵件發送這個留言
$ab = $modx->newQuery('Comments');
$ab->leftJoin('modUserProfile','Profile',array('Profile.internalKey = Comments.author'));
$ab->leftJoin('Bulletin','Bulletin',array('Bulletin.id = Comments.bulletin_id'));
$ab->where(array('Comments.bulletin_id' => $bullId));
$ab->where(array('Comments.email' => 1));
$ab->select(array('Comments.*','Profile.fullname as fullname' , 'Profile.email as email' , 'Bulletin.title as title'));
$emailList = $modx->getCollection('Comments',$ab);
現在,給他們發電子郵件
foreach ($emailList as $e){
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->address('to',$e->email);
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_SUBJECT,'A new comment has been posted!');}
我應該使用電子郵件的用戶,讓他們只收到1封電子郵件,無論他們發表了多少評論?請讓我知道,如果上述不夠清楚。謝謝!!
你通過'$ emailList'結果循環。不要循環,只要結果是'$ emailList> = 1'發送電子郵件 –
@非常感謝這一點。我剛剛有機會嘗試您的解決方案,但我對如何捕獲用戶的電子郵件地址感到困惑。如果我不循環(這是有道理的),那麼我怎樣才能得到那些符合'$ emailList> = 1'的地址? – camelCase