[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: NewslettersController.php
<?php namespace App\Http\Controllers\Admin; use App\Exports\NewslettersExport; use App\Http\Controllers\Controller; use App\Mail\SendNotifications; use App\Models\Newsletter; use App\Models\NewsletterHistory; use Exception; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; class NewslettersController extends Controller { public function index() { $this->authorize('admin_newsletters_lists'); $newsletters = Newsletter::orderBy('created_at', 'desc') ->paginate(10); $data = [ 'pageTitle' => trans('admin/main.newsletters'), 'newsletters' => $newsletters ]; return view('admin.newsletters.lists', $data); } public function send() { $this->authorize('admin_newsletters_send'); $data = [ 'pageTitle' => trans('update.send_newsletter') ]; return view('admin.newsletters.send', $data); } public function sendNewsletter(Request $request) { $this->authorize('admin_newsletters_send'); $this->validate($request, [ 'title' => 'required|string', 'description' => 'required|string', 'send_method' => 'required|in:send_to_all,send_to_bcc,send_to_excel', 'bcc_email' => 'required_if:send_method,send_to_bcc' . ($request->get('send_method') == 'send_to_bcc' ? '|email' : ''), 'excel' => 'required_if:send_method,send_to_excel' . ($request->get('send_method') == 'send_to_excel' ? '|mimes:xlsx' : ''), ]); $data = $request->all(); $title = $data['title']; $description = $data['description']; if ($data['send_method'] == 'send_to_bcc') { $send = $this->handleSendToCC($data); } elseif ($data['send_method'] == 'send_to_excel') { $send = $this->handleSentToExcelList($data); } else { $send = $this->handleSendToAllNewsletters($title, $description); } if ($send == false) { return back()->withInput($data); } NewsletterHistory::create([ 'title' => $title, 'description' => $description, 'send_method' => $data['send_method'], 'bcc_email' => $data['bcc_email'] ?? null, 'email_count' => $send ?? 0, 'created_at' => time(), ]); return redirect(getAdminPanelUrl().'/newsletters/history'); } /** * @param $title * @param $description * * @return boolean|integer * * @throws Exception */ private function handleSendToAllNewsletters($title, $description) { $this->authorize('admin_newsletters_send'); $newsletters = Newsletter::orderBy('created_at', 'desc')->get(); try { foreach ($newsletters as $newsletter) { \Mail::to($newsletter->email)->send(new SendNotifications(['title' => $title, 'message' => $description])); } return count($newsletters); } catch (Exception $e) { session()->put('send_email_error', $e->getMessage()); return false; } } /** * @param $data * * @return boolean|integer * * @throws Exception */ private function handleSendToCC($data) { $this->authorize('admin_newsletters_send'); $title = $data['title']; $description = $data['description']; $email = $data['bcc_email']; $ccEmails = Newsletter::orderBy('created_at', 'desc')->pluck('email')->toArray(); try { \Mail::to($email)->send(new SendNotifications(['title' => $title, 'message' => $description, 'cc' => $ccEmails])); return count($ccEmails); } catch (Exception $e) { session()->put('send_email_error', $e->getMessage()); return false; } } /** * @param $data * * @return boolean|integer * * @throws Exception */ private function handleSentToExcelList($data) { $this->authorize('admin_newsletters_send'); $title = $data['title']; $description = $data['description']; $excel = $data['excel']; try { $rows = Excel::toArray(null, $excel); if (!empty($rows) and count($rows[0])) { foreach ($rows[0] as $row) { if (!empty($row) and !empty($row[0])) { $email = $row[0]; \Mail::to($email)->send(new SendNotifications(['title' => $title, 'message' => $description])); } } } return count($rows[0]); } catch (Exception $e) { session()->put('send_email_error', $e->getMessage()); return false; } } public function history() { $this->authorize('admin_newsletters_history'); $newsletters = NewsletterHistory::orderBy('created_at','desc') ->paginate(10); $data = [ 'pageTitle' => trans('update.newsletters_history'), 'newsletters' => $newsletters ]; return view('admin.newsletters.history', $data); } public function delete($id) { $this->authorize('admin_newsletters_delete'); $item = Newsletter::findOrFail($id); $item->delete(); return back(); } public function exportExcel() { $this->authorize('admin_newsletters_export_excel'); $newsletters = Newsletter::orderBy('created_at', 'desc') ->get(); $newslettersExport = new NewslettersExport($newsletters); return Excel::download($newslettersExport, trans('admin/main.newsletters') . '.xlsx'); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.85 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285