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