public function saveMailToDbAndSendMail($_current_user_id, $_ad_user_id, $_ad_id, $_text, $_mail_to) { //generate conversation hash $hash_array = array($_current_user_id, $_ad_user_id, $_ad_id); sort($hash_array); $hash = md5(join('-', $hash_array)); //save message $userMail = new UserMail(); $userMail->ad_id = $_ad_id; $userMail->user_id_from = $_current_user_id; $userMail->user_id_to = $_ad_user_id; $userMail->mail_text = Util::nl2br(strip_tags($_text)); $userMail->mail_date = date('Y-m-d H:i:s'); $userMail->mail_hash = $hash; $userMail->save(); //save message status $userMailStatus = new UserMailStatus(); $userMailStatus->mail_id = $userMail->mail_id; $userMailStatus->user_id = $_ad_user_id; $userMailStatus->mail_status = UserMailStatus::MAIL_STATUS_UNREAD; $userMailStatus->mail_deleted = UserMailStatus::MAIL_STATUS_NOT_DELETED; $userMailStatus->mail_hash = $hash; $userMailStatus->save(); //save status for the other user $userMailStatus = new UserMailStatus(); $userMailStatus->mail_id = $userMail->mail_id; $userMailStatus->user_id = $_current_user_id; $userMailStatus->mail_status = UserMailStatus::MAIL_STATUS_SEND; $userMailStatus->mail_deleted = UserMailStatus::MAIL_STATUS_NOT_DELETED; $userMailStatus->mail_hash = $hash; $userMailStatus->save(); //send mail to ad publisher Mail::send('emails.ad_contact', ['userMail' => $userMail], function ($m) use($_mail_to) { $m->from('*****@*****.**', 'dclassifieds ad contact'); $m->to($_mail_to)->subject('You have new message in DClassifieds'); }); }
public function maildelete(Request $request) { //get params $mail_id = $request->mail_id; $current_user_id = $request->user()->user_id; //mark mail deleted $umStatus = UserMailStatus::where('user_id', $current_user_id); if (is_numeric($mail_id)) { $umStatus->where('mail_id', $mail_id); } else { $umStatus->where('mail_hash', $mail_id); } $umStatus->update(['mail_deleted' => UserMailStatus::MAIL_STATUS_DELETED]); //clear the cache Cache::flush(); return redirect()->back(); }