Jump to content

fastsol

Moderators
  • Posts

    827
  • Joined

  • Last visited

  • Days Won

    9

fastsol last won the day on July 26 2015

fastsol had the most liked content!

1 Follower

About fastsol

  • Birthday 10/17/1978

Contact Methods

  • Website URL
    http://amecms.com

Profile Information

  • Gender
    Male
  • Location
    Minnesota

Recent Profile Visitors

206,029 profile views

fastsol's Achievements

Regular Member

Regular Member (3/5)

39

Reputation

2

Community Answers

  1. Turns out this was a really simple fix. After looking through the s-ichikawa/laravel-sendgrid-driver code, I found how it does it and changed one thing in the handle method of my code (I put a comment just above it in the code below). I honestly have no idea what the mergeCustomArgs method does for me. From my testing I don't think it ever actually applied anything to the args array anyway, at least in the context I've been using it. So I commented that out. <?php namespace App\Listeners; use App\Helpers\Mail\MailTrackerSetup; use Illuminate\Mail\Events\MessageSending; use SendGrid\Mail\Header; use Sichikawa\LaravelSendgridDriver\SendGrid; use Sichikawa\LaravelSendgridDriver\Transport\SendgridTransport; use Symfony\Component\Mime\Header\Headers; use Symfony\Component\Mime\Header\UnstructuredHeader; /** * Class SetSendgridCustomArg * @package App\Listeners */ class SetSendgridCustomArg { use SendGrid { sgEncode as encode; } /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param MessageSending $event * @return void */ public function handle(MessageSending $event) { $args = [ 'personalizations' => [ [ 'custom_args' => [ 'email_subject' => $event->message->getSubject(), 'domain' => settings('site_name'), ], ], ], ]; $args['personalizations'][0]['custom_args'] = array_merge( $args['personalizations'][0]['custom_args'], (new MailTrackerSetup($event->data))->getTrackingDetails()); // $args = $this->mergeCustomArgs($event, $args); // All I changed was this line. $event->message->embed(static::sgEncode($args), SendgridTransport::REQUEST_BODY_PARAMETER); } /** * @param $event * @param $args * @return mixed */ private function mergeCustomArgs($event, $args) { // if(count($event->message->getChildren())){ // foreach($event->message->getChildren() as $child){ // if($child instanceof \Swift_Image){ // $params = json_decode($child->getBody(), true); // // if(isset($params['personalizations'][0]['custom_args'])){ // foreach($params['personalizations'][0]['custom_args'] as $key => $custom_arg) { // $args['personalizations'][0]['custom_args'][$key] = $custom_arg; // } // } // } // } // } return $args; } }
  2. I have a Laravel 8 site that works perfectly but I was trying to update it to Laravel 9. The issue I'm having is trying to figure out how to send custom_args or personalizations with the new Symfony Mailer compared to the old SwiftMailer Laravel has traditionally used. I have searched and searched for code online but have found nothing at all that helps convert this. I'll be honest, I don't really even understand how the old code works exactly or where I got the info from. All I know is it works. I need to send custom_args with the mail so Sendgrid can send them back in webhooks. Without this functionality, a big part of my site will not function. If anyone knows how to convert this old code or tell me how to do it a different way, I would so greatly appreciate it. If you can give me some actual code or examples that get this working, I am happy to donate to you. The code below is an event listener on the Laravel MessageSending event. I currently use this package for the "driver" in Laravel s-ichikawa/laravel-sendgrid-driver. The code seems to indicate that I'm sending an attachment or something, but that seems kind of weird to me. I know very little about the SwiftMailer and even less about the new SymfonyMailer. <?php namespace App\Listeners; use App\Helpers\Mail\MailTrackerSetup; use Illuminate\Mail\Events\MessageSending; use Sichikawa\LaravelSendgridDriver\SendGrid; use Sichikawa\LaravelSendgridDriver\Transport\SendgridTransport; /** * Class SetSendgridCustomArg * @package App\Listeners */ class SetSendgridCustomArg { use SendGrid { sgEncode as encode; } /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param MessageSending $event * @return void */ public function handle(MessageSending $event) { $args = [ 'personalizations' => [ [ 'custom_args' => [ 'email_subject' => $event->message->getSubject(), 'domain' => settings('site_name'), ], ], ], ]; $args['personalizations'][0]['custom_args'] = array_merge( $args['personalizations'][0]['custom_args'], (new MailTrackerSetup($event->data))->getTrackingDetails()); $args = $this->mergeCustomArgs($event, $args); $event->message->embed(new \Swift_Image(static::sgEncode($args), SendgridTransport::SMTP_API_NAME)); } /** * @param $event * @param $args * @return mixed */ private function mergeCustomArgs($event, $args) { if(count($event->message->getChildren())){ foreach($event->message->getChildren() as $child){ if($child instanceof \Swift_Image){ $params = json_decode($child->getBody(), true); if(isset($params['personalizations'][0]['custom_args'])){ foreach($params['personalizations'][0]['custom_args'] as $key => $custom_arg) { $args['personalizations'][0]['custom_args'][$key] = $custom_arg; } } } } } return $args; } } This is a dump of what the personalization array and $event->message are after this code runs. The part of the SwiftMessage that holds the personalization array if waaaay towards the bottom of the dump. You'll see it in a json string. array:1 [ "personalizations" => array:1 [ 0 => array:1 [ "custom_args" => array:4 [ "email_subject" => "Remote Start Quote 102cmlzspagej5p - UNDEFINED UNDEFINED UNDEFINED anything" "domain" => "Remotely Started" "tracking_id" => 13165 "tracking_model" => "App\Models\Quote\Quote" ] ] ] ] Swift_Message�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Message.php#L16�\^�]8;;�\ {#5087 -headerSigners: [] -bodySigners: [] -savedMessage: [] #userFormat: null #userCharset: "utf-8" #userDelSp: null -nestingLevel: 4096 -headers: Swift_Mime_SimpleHeaderSet�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderSet.php#L16�\^�]8;;�\ {#5089 -factory: Swift_Mime_SimpleHeaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderFactory.php#L18�\^�]8;;�\ {#5090 -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091 #charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#5080 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } #filter: null #safeMap: array:68 [ 97 => "a" 98 => "b" 99 => "c" 100 => "d" 101 => "e" 102 => "f" 103 => "g" 104 => "h" 105 => "i" 106 => "j" 107 => "k" 108 => "l" 109 => "m" 110 => "n" 111 => "o" 112 => "p" 113 => "q" 114 => "r" 115 => "s" 116 => "t" 117 => "u" 118 => "v" 119 => "w" 120 => "x" 121 => "y" 122 => "z" 65 => "A" 66 => "B" 67 => "C" 68 => "D" 69 => "E" 70 => "F" 71 => "G" 72 => "H" 73 => "I" 74 => "J" 75 => "K" 76 => "L" 77 => "M" 78 => "N" 79 => "O" 80 => "P" 81 => "Q" 82 => "R" 83 => "S" 84 => "T" 85 => "U" 86 => "V" 87 => "W" 88 => "X" 89 => "Y" 90 => "Z" 48 => "0" 49 => "1" 50 => "2" 51 => "3" 52 => "4" 53 => "5" 54 => "6" 55 => "7" 56 => "8" 57 => "9" 32 => " " 33 => "!" 42 => "*" 43 => "+" 45 => "-" 47 => "/" ] } -paramEncoder: Swift_Encoder_Rfc2231Encoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Encoder\Rfc2231Encoder.php#L16�\^�]8;;�\ {#5094 -charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#5092 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } } -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093 -lexer: Egulias\EmailValidator\EmailLexer�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailLexer.php#L7�\^�]8;;�\ {#5097 #charValue: array:28 [ "(" => 49 ")" => 261 "<" => 272 ">" => 273 "[" => 262 "]" => 263 ":" => 265 ";" => 275 "@" => 64 "\" => 92 "/" => 278 "," => 274 "." => 46 "'" => 39 "`" => 96 """ => 34 "-" => 264 "::" => 266 " " => 267 "\t" => 268 "\r" => 269 "\n" => 270 "\r\n" => 301 "IPv6" => 271 "{" => 276 "}" => 277 "" => null "\0" => 0 ] #hasInvalidTokens: false #previous: array:3 [ "value" => "generated" "type" => 300 "position" => 39 ] +token: array:3 [ "value" => "" "type" => null "position" => 0 ] +lookahead: null -input: "54b50e08a8c26f98eb28970cd0de604f@swift.generated" -tokens: array:22 [ 0 => array:3 [ "value" => "54" "type" => 300 "position" => 0 ] 1 => array:3 [ "value" => "b" "type" => 300 "position" => 2 ] 2 => array:3 [ "value" => "50" "type" => 300 "position" => 3 ] 3 => array:3 [ "value" => "e" "type" => 300 "position" => 5 ] 4 => array:3 [ "value" => "08" "type" => 300 "position" => 6 ] 5 => array:3 [ "value" => "a" "type" => 300 "position" => 8 ] 6 => array:3 [ "value" => "8" "type" => 300 "position" => 9 ] 7 => array:3 [ "value" => "c" "type" => 300 "position" => 10 ] 8 => array:3 [ "value" => "26" "type" => 300 "position" => 11 ] 9 => array:3 [ "value" => "f" "type" => 300 "position" => 13 ] 10 => array:3 [ "value" => "98" "type" => 300 "position" => 14 ] 11 => array:3 [ "value" => "eb" "type" => 300 "position" => 16 ] 12 => array:3 [ "value" => "28970" "type" => 300 "position" => 18 ] 13 => array:3 [ "value" => "cd" "type" => 300 "position" => 23 ] 14 => array:3 [ "value" => "0" "type" => 300 "position" => 25 ] 15 => array:3 [ "value" => "de6" "type" => 300 "position" => 26 ] 16 => array:3 [ "value" => "04" "type" => 300 "position" => 29 ] 17 => array:3 [ "value" => "f" "type" => 300 "position" => 31 ] 18 => array:3 [ "value" => "@" "type" => 64 "position" => 32 ] 19 => array:3 [ "value" => "swift" "type" => 300 "position" => 33 ] 20 => array:3 [ "value" => "." "type" => 46 "position" => 38 ] 21 => array:3 [ "value" => "generated" "type" => 300 "position" => 39 ] ] -position: 22 -peek: 0 -regex: "/([a-zA-Z_]+[46]?)|([^\x00-\x7F])|([0-9]+)|(\r\n)|(::)|(\s+?)|(.)|[\xA0-\xff]+/iu" } #warnings: [] #error: null } -charset: "utf-8" -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5098} } -headers: array:9 [ "content-transfer-encoding" => [] "content-type" => array:1 [ 0 => Swift_Mime_Headers_ParameterizedHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\ParameterizedHeader.php#L16�\^�]8;;�\ {#4749 -paramEncoder: null -params: array:4 [ "charset" => null "boundary" => "_=_swift_1708951240_14be803fe8c1d06de3618456fcb76b6a_=_" "format" => null "delsp" => null ] -value: "multipart/alternative" -name: "Content-Type" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "mime-version" => array:1 [ 0 => Swift_Mime_Headers_UnstructuredHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\UnstructuredHeader.php#L16�\^�]8;;�\ {#4817 -value: "1.0" -name: "MIME-Version" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "date" => array:1 [ 0 => Swift_Mime_Headers_DateHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\DateHeader.php#L16�\^�]8;;�\ {#4326 -dateTime: DateTimeImmutable @1708951240 {#4547 date: 2024-02-26 06:40:40.255433 America/Chicago (-06:00) } -name: "Date" -encoder: null -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "message-id" => array:1 [ 0 => Swift_Mime_Headers_IdentificationHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\IdentificationHeader.php#L20�\^�]8;;�\ {#4556 -ids: array:1 [ 0 => "338afa852f559198d1773c3bac20e4eb@swift.generated" ] -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#4824} -name: "Message-ID" -encoder: null -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "from" => array:1 [ 0 => Swift_Mime_Headers_MailboxHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php#L19�\^�]8;;�\ {#4553 -mailboxes: array:1 [ "info@remotelystartedmn.com" => "RemotelyStartedMN.com" ] -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5098} -name: "From" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "subject" => array:1 [ 0 => Swift_Mime_Headers_UnstructuredHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\UnstructuredHeader.php#L16�\^�]8;;�\ {#5083 -value: "Remote Start Quote 102cmlzspagej5p - UNDEFINED UNDEFINED UNDEFINED anything" -name: "Subject" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "reply-to" => array:1 [ 0 => Swift_Mime_Headers_MailboxHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php#L19�\^�]8;;�\ {#5086 -mailboxes: array:1 [ "info@remotelystartedmn.com" => "RemotelyStartedMN.com" ] -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5098} -name: "Reply-To" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "to" => array:1 [ 0 => Swift_Mime_Headers_MailboxHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php#L19�\^�]8;;�\ {#5077 -mailboxes: array:1 [ "larkin.manley@example.net" => "102cmlzspagej5p" ] -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5098} -name: "To" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] ] -order: array:16 [ "return-path" => 0 "received" => 1 "dkim-signature" => 2 "domainkey-signature" => 3 "sender" => 4 "message-id" => 5 "date" => 6 "subject" => 7 "from" => 8 "reply-to" => 9 "to" => 10 "cc" => 11 "bcc" => 12 "mime-version" => 13 "content-type" => 14 "content-transfer-encoding" => 15 ] -required: array:3 [ "date" => 0 "message-id" => 1 "from" => 2 ] -charset: "utf-8" } -body: """ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n <html xmlns="http://www.w3.org/1999/xhtml">\n <head>\n <meta name="viewport" content="width=device-width, initial-scale=1.0">\n <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n </head>\n <body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; background-color: #F8FAFC; color: #74787E; height: 100%; hyphens: auto; line-height: 1.4; margin: 0; -moz-hyphens: auto; -ms-word-break: break-all; width: 100% !important; -webkit-hyphens: auto; -webkit-text-size-adjust: none; word-break: break-word;">\n <style>\n @media only screen and (max-width: 600px) {\n .inner-body {\n width: 100% !important;\n }\n \n .footer {\n width: 100% !important;\n }\n }\n \n @media only screen and (max-width: 500px) {\n .button {\n width: 100% !important;\n }\n }\n </style>\n \n <table class="wrapper" width="100%" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; background-color: #F8FAFC; margin: 0; padding: 0; width: 100%; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 100%;">\n <tr>\n <td align="center" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <table class="content" width="100%" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; margin: 0; padding: 0; width: 100%; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 100%;">\n <tr>\n <td class="header" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; padding: 25px 0; text-align: center;">\n <a href="http://rslaravel.localhost" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #bbbfc3; font-size: 19px; font-weight: bold; text-decoration: none; text-shadow: 0 1px 0 white;">\n RemotelyStartedMN.com\n </a>\n </td>\n </tr>\n \n <!-- Email Body -->\n <tr>\n <td class="body" width="100%" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; background-color: #FFFFFF; border-bottom: 1px solid #EDEFF2; border-top: 1px solid #EDEFF2; margin: 0; padding: 0; width: 100%; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 100%;">\n <table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; background-color: #FFFFFF; margin: 0 auto; padding: 0; width: 570px; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 570px;">\n <!-- Body content -->\n <tr>\n <td class="content-cell" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; padding: 35px;">\n <h1 style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3D4852; font-size: 19px; font-weight: bold; margin-top: 0; text-align: left;">Hi 102cmlzspagej5p,</h1>\n <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3D4852; font-size: 16px; line-height: 1.5em; margin-top: 0; text-align: left;">Your remote start quote is ready for viewing.</p>\n <table class="action" align="center" width="100%" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; margin: 30px auto; padding: 0; text-align: center; width: 100%; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 100%;">\n <tr>\n <td align="center" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <table width="100%" border="0" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <tr>\n <td align="center" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <table border="0" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <tr>\n <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <a href="http://rslaravel.localhost/quote/13165/TMbQbCfekVbiFIOpOKsq?e=1" class="button button-primary" target="_blank" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; border-radius: 3px; box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16); color: #FFF; display: inline-block; text-decoration: none; -webkit-text-size-adjust: none; background-color: #3490DC; border-top: 10px solid #3490DC; border-right: 18px solid #3490DC; border-bottom: 10px solid #3490DC; border-left: 18px solid #3490DC;">View Your Quote</a>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3D4852; font-size: 16px; line-height: 1.5em; margin-top: 0; text-align: left;">After you have viewed your quote, if you have any questions please feel free to call, text or email us. We're looking forward to helping you stay warm this\n winter.</p>\n <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3D4852; font-size: 16px; line-height: 1.5em; margin-top: 0; text-align: left;">If you are having problems with the button above you can copy/paste this direct link into your browser.\n <a href="http://rslaravel.localhost/quote/13165/TMbQbCfekVbiFIOpOKsq?e=1" target="_blank" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3869D4;">http://rslaravel.localhost/quote/13165/TMbQbCfekVbiFIOpOKsq?e=1</a></p>\n \n \n \n </td>\n </tr>\n </table>\n </td>\n </tr>\n \n <tr>\n <td style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;">\n <table class="footer" align="center" width="570" cellpadding="0" cellspacing="0" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; margin: 0 auto; padding: 0; text-align: center; width: 570px; -premailer-cellpadding: 0; -premailer-cellspacing: 0; -premailer-width: 570px;">\n <tr>\n <td class="content-cell" align="center" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; padding: 35px;">\n <table class="social" width="100%" style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; width: 100%; background: #FFFFFF; margin: 0; padding: 0;" bgcolor="#DFE4E8">\n <tr style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 0;">\n <td style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 0;">\n <!-- column 1 -->\n <table align="left" class="column" style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; float: left; margin: 0; padding: 0;">\n <tr style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 0;">\n <td style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 15px;">\n <h5 class="" style="box-sizing: border-box; font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; line-height: 1.1; color: #000; font-weight: 900; font-size: 17px; margin: 0 0 15px; padding: 0;">Connect with Us:</h5>\n <p class="" style="box-sizing: border-box; margin-top: 0; color: #AEAEAE; text-align: center; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-weight: normal; font-size: 14px; line-height: 1.6; margin: 0 0 10px; padding: 0;">\n <a href="https://www.facebook.com/remotelystartedmn" target="_blank" class="button button-primary" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; border-radius: 3px; box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16); color: #FFF; display: inline-block; text-decoration: none; -webkit-text-size-adjust: none; background-color: #3490DC; border-top: 10px solid #3490DC; border-right: 18px solid #3490DC; border-bottom: 10px solid #3490DC; border-left: 18px solid #3490DC; margin-bottom: 8px;">Facebook</a>\n <a href="https://www.youtube.com/channel/UCJP-aaTX0XeqIWGhPrCQDRA" target="_blank" class="button button-error" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; border-radius: 3px; box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16); color: #FFF; display: inline-block; text-decoration: none; -webkit-text-size-adjust: none; background-color: #E3342F; border-top: 10px solid #E3342F; border-right: 18px solid #E3342F; border-bottom: 10px solid #E3342F; border-left: 18px solid #E3342F; margin-bottom: 8px;">Youtube</a>\n </p>\n </td>\n </tr>\n </table>\n <!-- /column 1 --><!-- column 2 -->\n <table align="left" class="column" style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; float: left; margin: 0; padding: 0;">\n <tr style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 0;">\n <td style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 15px; height: 119px;">\n \n <h5 class="" style="box-sizing: border-box; font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; line-height: 1.1; color: #000; font-weight: 900; font-size: 17px; margin: 0 0 15px; padding: 0;">Contact Info:</h5>\n <p style="box-sizing: border-box; margin-top: 0; color: #AEAEAE; text-align: center; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; font-weight: normal; font-size: 14px; line-height: 1.6; margin: 0 0 10px; padding: 0;">JD &amp; Brooklynn<br>\n \t\t\t\t\t\t\t\t\t\t\t\t14802 Dundee Ave<br>Apple Valley, MN 55124\n <br><br>\n Phone: <strong style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 0;">612-840-1039</strong><br style="font-family: 'Helvetica Neue', 'Helvetica',\n Helvetica, Arial,\n sans-serif;\n margin: 0; padding: 0;">\n Email: <!--<strong style="font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin:\n 0; padding: 0;">--><a href="mailto:info@remotelystartedmn.com" style="box-sizing: border-box; color: #3869D4; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; margin: 0; padding: 0;">info@remotelystartedmn.com</a><!--</strong>--></p>\n \n </td>\n </tr>\n </table>\n <!-- /column 2 -->\n <span class="clear" style="box-sizing: border-box; font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif; display: block; clear: both; margin: 0; padding: 0;"></span>\n \n </td>\n </tr>\n </table>\n <br>\n <p style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; line-height: 1.5em; margin-top: 0; color: #AEAEAE; font-size: 12px; text-align: center;">© 2024 RemotelyStartedMN.com. All rights reserved.</p>\n \n <small style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box;"><a href="http://rslaravel.localhost/web_site_terms_and_conditions_of_use.html" target="_blank" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3869D4;">Terms</a> |\n <a href="http://rslaravel.localhost/privacy" target="_blank" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; color: #3869D4;">Privacy</a>\n \n </small>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </body>\n </html> """ -encoder: Swift_Mime_ContentEncoder_QpContentEncoderProxy�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\ContentEncoder\QpContentEncoderProxy.php#L18�\^�]8;;�\ {#5095 -safeEncoder: Swift_Mime_ContentEncoder_QpContentEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\ContentEncoder\QpContentEncoder.php#L16�\^�]8;;�\ {#5096 #dotEscape: false #charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#4650 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } #filter: Swift_StreamFilters_ByteArrayReplacementFilter�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\StreamFilters\ByteArrayReplacementFilter.php#L18�\^�]8;;�\ {#4648 -replace: array:3 [ 0 => array:2 [ 0 => 13 1 => 10 ] 1 => array:2 [ 0 => 13 1 => 10 ] 2 => array:2 [ 0 => 13 1 => 10 ] ] -index: array:2 [ 13 => true 10 => true ] -tree: array:2 [ 13 => array:3 [ 10 => array:2 [ -1 => 0 -2 => 2 ] -1 => 1 -2 => 1 ] 10 => array:2 [ -1 => 2 -2 => 1 ] ] -treeMaxLen: 2 -repSize: array:3 [ 2 => 2 1 => 2 0 => 2 ] } #safeMap: array:95 [ 9 => "\t" 32 => " " 33 => "!" 34 => """ 35 => "#" 36 => "$" 37 => "%" 38 => "&" 39 => "'" 40 => "(" 41 => ")" 42 => "*" 43 => "+" 44 => "," 45 => "-" 46 => "." 47 => "/" 48 => "0" 49 => "1" 50 => "2" 51 => "3" 52 => "4" 53 => "5" 54 => "6" 55 => "7" 56 => "8" 57 => "9" 58 => ":" 59 => ";" 60 => "<" 62 => ">" 63 => "?" 64 => "@" 65 => "A" 66 => "B" 67 => "C" 68 => "D" 69 => "E" 70 => "F" 71 => "G" 72 => "H" 73 => "I" 74 => "J" 75 => "K" 76 => "L" 77 => "M" 78 => "N" 79 => "O" 80 => "P" 81 => "Q" 82 => "R" 83 => "S" 84 => "T" 85 => "U" 86 => "V" 87 => "W" 88 => "X" 89 => "Y" 90 => "Z" 91 => "[" 92 => "\" 93 => "]" 94 => "^" 95 => "_" 96 => "`" 97 => "a" 98 => "b" 99 => "c" 100 => "d" 101 => "e" 102 => "f" 103 => "g" 104 => "h" 105 => "i" 106 => "j" 107 => "k" 108 => "l" 109 => "m" 110 => "n" 111 => "o" 112 => "p" 113 => "q" 114 => "r" 115 => "s" 116 => "t" 117 => "u" 118 => "v" 119 => "w" 120 => "x" 121 => "y" 122 => "z" 123 => "{" 124 => "|" 125 => "}" 126 => "~" ] } -nativeEncoder: Swift_Mime_ContentEncoder_NativeQpContentEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\ContentEncoder\NativeQpContentEncoder.php#L16�\^�]8;;�\ {#4649 -charset: "utf-8" } -charset: "utf-8" } -idGenerator: Swift_Mime_IdGenerator�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\IdGenerator.php#L14�\^�]8;;�\ {#4652 -idRight: "swift.generated" } -boundary: "_=_swift_1708951240_14be803fe8c1d06de3618456fcb76b6a_=_" -compositeRanges: array:3 [ "multipart/mixed" => array:2 [ 0 => 16 1 => 256 ] "multipart/alternative" => array:2 [ 0 => 256 1 => 4096 ] "multipart/related" => array:2 [ 0 => 4096 1 => 65536 ] ] -compoundLevelFilters: array:1 [ 69632 => array:1 [ 4096 => array:2 [ "text/plain" => 4096 "text/html" => 65536 ] ] ] -cache: Swift_KeyCache_DiskKeyCache�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\KeyCache\DiskKeyCache.php#L16�\^�]8;;�\ {#4530 -stream: Swift_KeyCache_SimpleKeyCacheInputStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\KeyCache\SimpleKeyCacheInputStream.php#L16�\^�]8;;�\ {#4656 -keyCache: null -nsKey: null -itemKey: null -writeThrough: null } -path: "C:\Users\fasts\AppData\Local\Temp" -keys: [] } -immediateChildren: array:2 [ 0 => Swift_MimePart�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\MimePart.php#L16�\^�]8;;�\ {#5076 #userFormat: null #userCharset: "utf-8" #userDelSp: null -nestingLevel: 4096 -headers: Swift_Mime_SimpleHeaderSet�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderSet.php#L16�\^�]8;;�\ {#5078 -factory: Swift_Mime_SimpleHeaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderFactory.php#L18�\^�]8;;�\ {#5082 -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5074 #charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#5073 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } #filter: null #safeMap: array:68 [ 97 => "a" 98 => "b" 99 => "c" 100 => "d" 101 => "e" 102 => "f" 103 => "g" 104 => "h" 105 => "i" 106 => "j" 107 => "k" 108 => "l" 109 => "m" 110 => "n" 111 => "o" 112 => "p" 113 => "q" 114 => "r" 115 => "s" 116 => "t" 117 => "u" 118 => "v" 119 => "w" 120 => "x" 121 => "y" 122 => "z" 65 => "A" 66 => "B" 67 => "C" 68 => "D" 69 => "E" 70 => "F" 71 => "G" 72 => "H" 73 => "I" 74 => "J" 75 => "K" 76 => "L" 77 => "M" 78 => "N" 79 => "O" 80 => "P" 81 => "Q" 82 => "R" 83 => "S" 84 => "T" 85 => "U" 86 => "V" 87 => "W" 88 => "X" 89 => "Y" 90 => "Z" 48 => "0" 49 => "1" 50 => "2" 51 => "3" 52 => "4" 53 => "5" 54 => "6" 55 => "7" 56 => "8" 57 => "9" 32 => " " 33 => "!" 42 => "*" 43 => "+" 45 => "-" 47 => "/" ] } -paramEncoder: Swift_Encoder_Rfc2231Encoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Encoder\Rfc2231Encoder.php#L16�\^�]8;;�\ {#5075 -charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#5070 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } } -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -charset: "utf-8" -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5069} } -headers: array:2 [ "content-transfer-encoding" => array:1 [ 0 => Swift_Mime_Headers_UnstructuredHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\UnstructuredHeader.php#L16�\^�]8;;�\ {#5079 -value: "quoted-printable" -name: "Content-Transfer-Encoding" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5074} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "content-type" => array:1 [ 0 => Swift_Mime_Headers_ParameterizedHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\ParameterizedHeader.php#L16�\^�]8;;�\ {#5068 -paramEncoder: null -params: array:1 [ "charset" => "utf-8" ] -value: "text/plain" -name: "Content-Type" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5074} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] ] -order: array:2 [ "content-type" => 0 "content-transfer-encoding" => 1 ] -required: [] -charset: "utf-8" } -body: """ [RemotelyStartedMN.com](http://rslaravel.localhost)\n \n # Hi 102cmlzspagej5p,\n Your remote start quote is ready for viewing.\n \n View Your Quote: http://rslaravel.localhost/quote/13165/TMbQbCfekVbiFIOpOKsq?e=1\n \n After you have viewed your quote, if you have any questions please feel free to call, text or email us. We're looking forward to helping you stay warm this\n winter.\n \n If you are having problems with the button above you can copy/paste this direct link into your browser.\n http://rslaravel.localhost/quote/13165/TMbQbCfekVbiFIOpOKsq?e=1\n \n © 2024 RemotelyStartedMN.com. All rights reserved.\n """ -encoder: Swift_Mime_ContentEncoder_QpContentEncoderProxy�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\ContentEncoder\QpContentEncoderProxy.php#L18�\^�]8;;�\ {#5095} -idGenerator: Swift_Mime_IdGenerator�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\IdGenerator.php#L14�\^�]8;;�\ {#4652} -boundary: null -compositeRanges: array:3 [ "multipart/mixed" => array:2 [ 0 => 16 1 => 256 ] "multipart/alternative" => array:2 [ 0 => 256 1 => 4096 ] "multipart/related" => array:2 [ 0 => 4096 1 => 65536 ] ] -compoundLevelFilters: array:1 [ 69632 => array:1 [ 4096 => array:2 [ "text/plain" => 4096 "text/html" => 65536 ] ] ] -cache: Swift_KeyCache_DiskKeyCache�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\KeyCache\DiskKeyCache.php#L16�\^�]8;;�\ {#4530} -immediateChildren: [] -children: [] -maxLineLength: 78 -alternativePartOrder: array:3 [ "text/plain" => 1 "text/html" => 2 "multipart/related" => 3 ] -id: "fcb229d0127bd3c1128ee42d3dd65071@swift.generated" -cacheKey: "9e2120edad7d53694e66f0473a03ad78" #userContentType: "text/plain" -nestingLevel: 4096 } 1 => Swift_Mime_SimpleMimeEntity�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleMimeEntity.php#L16�\^�]8;;�\ {#5050 -headers: Swift_Mime_SimpleHeaderSet�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderSet.php#L16�\^�]8;;�\ {#5049 -factory: Swift_Mime_SimpleHeaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderFactory.php#L18�\^�]8;;�\ {#5090} -headers: array:2 [ "content-transfer-encoding" => [] "content-type" => array:1 [ 0 => Swift_Mime_Headers_ParameterizedHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\ParameterizedHeader.php#L16�\^�]8;;�\ {#5048 -paramEncoder: null -params: array:1 [ "boundary" => "_=_swift_1708951240_657b30b94e42e05c9b76e6c691afa97a_=_" ] -value: "multipart/related" -name: "Content-Type" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5091} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] ] -order: array:2 [ "content-type" => 0 "content-transfer-encoding" => 1 ] -required: [] -charset: null } -body: null -encoder: Swift_Mime_ContentEncoder_QpContentEncoderProxy�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\ContentEncoder\QpContentEncoderProxy.php#L18�\^�]8;;�\ {#5095} -idGenerator: Swift_Mime_IdGenerator�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\IdGenerator.php#L14�\^�]8;;�\ {#4652} -boundary: "_=_swift_1708951240_657b30b94e42e05c9b76e6c691afa97a_=_" -compositeRanges: array:3 [ "multipart/mixed" => array:2 [ 0 => 16 1 => 256 ] "multipart/alternative" => array:2 [ 0 => 256 1 => 4096 ] "multipart/related" => array:2 [ 0 => 4096 1 => 65536 ] ] -compoundLevelFilters: array:1 [ 69632 => array:1 [ 4096 => array:2 [ "text/plain" => 4096 "text/html" => 65536 ] ] ] -nestingLevel: 4096 -cache: Swift_KeyCache_DiskKeyCache�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\KeyCache\DiskKeyCache.php#L16�\^�]8;;�\ {#4530} -immediateChildren: array:1 [ 0 => Swift_Image�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Image.php#L16�\^�]8;;�\ {#5059 -mimeTypes: array:986 [ "3dml" => "text/vnd.in3d.3dml" "3ds" => "image/x-3ds" "3g2" => "video/3gpp2" "3gp" => "video/3gpp" "7z" => "application/x-7z-compressed" "aab" => "application/x-authorware-bin" "aac" => "audio/x-aac" "aam" => "application/x-authorware-map" "aas" => "application/x-authorware-seg" "abw" => "application/x-abiword" "ac" => "application/pkix-attr-cert" "acc" => "application/vnd.americandynamics.acc" "ace" => "application/x-ace-compressed" "acu" => "application/vnd.acucobol" "acutc" => "application/vnd.acucorp" "adp" => "audio/adpcm" "aep" => "application/vnd.audiograph" "afm" => "application/x-font-type1" "afp" => "application/vnd.ibm.modcap" "ahead" => "application/vnd.ahead.space" "ai" => "application/postscript" "aif" => "audio/x-aiff" "aifc" => "audio/x-aiff" "aiff" => "audio/x-aiff" "air" => "application/vnd.adobe.air-application-installer-package+zip" "ait" => "application/vnd.dvb.ait" "ami" => "application/vnd.amiga.ami" "apk" => "application/vnd.android.package-archive" "appcache" => "text/cache-manifest" "apr" => "application/vnd.lotus-approach" "aps" => "application/postscript" "arc" => "application/x-freearc" "asc" => "application/pgp-signature" "asf" => "video/x-ms-asf" "asm" => "text/x-asm" "aso" => "application/vnd.accpac.simply.aso" "asx" => "video/x-ms-asf" "atc" => "application/vnd.acucorp" "atom" => "application/atom+xml" "atomcat" => "application/atomcat+xml" "atomsvc" => "application/atomsvc+xml" "atx" => "application/vnd.antix.game-component" "au" => "audio/basic" "avi" => "video/x-msvideo" "aw" => "application/applixware" "azf" => "application/vnd.airzip.filesecure.azf" "azs" => "application/vnd.airzip.filesecure.azs" "azw" => "application/vnd.amazon.ebook" "bat" => "application/x-msdownload" "bcpio" => "application/x-bcpio" "bdf" => "application/x-font-bdf" "bdm" => "application/vnd.syncml.dm+wbxml" "bed" => "application/vnd.realvnc.bed" "bh2" => "application/vnd.fujitsu.oasysprs" "bin" => "application/octet-stream" "blb" => "application/x-blorb" "blorb" => "application/x-blorb" "bmi" => "application/vnd.bmi" "bmp" => "image/bmp" "book" => "application/vnd.framemaker" "box" => "application/vnd.previewsystems.box" "boz" => "application/x-bzip2" "bpk" => "application/octet-stream" "btif" => "image/prs.btif" "bz" => "application/x-bzip" "bz2" => "application/x-bzip2" "c" => "text/x-c" "c11amc" => "application/vnd.cluetrust.cartomobile-config" "c11amz" => "application/vnd.cluetrust.cartomobile-config-pkg" "c4d" => "application/vnd.clonk.c4group" "c4f" => "application/vnd.clonk.c4group" "c4g" => "application/vnd.clonk.c4group" "c4p" => "application/vnd.clonk.c4group" "c4u" => "application/vnd.clonk.c4group" "cab" => "application/vnd.ms-cab-compressed" "caf" => "audio/x-caf" "cap" => "application/vnd.tcpdump.pcap" "car" => "application/vnd.curl.car" "cat" => "application/vnd.ms-pki.seccat" "cb7" => "application/x-cbr" "cba" => "application/x-cbr" "cbr" => "application/x-cbr" "cbt" => "application/x-cbr" "cbz" => "application/x-cbr" "cc" => "text/x-c" "cct" => "application/x-director" "ccxml" => "application/ccxml+xml" "cdbcmsg" => "application/vnd.contact.cmsg" "cdf" => "application/x-netcdf" "cdkey" => "application/vnd.mediastation.cdkey" "cdmia" => "application/cdmi-capability" "cdmic" => "application/cdmi-container" "cdmid" => "application/cdmi-domain" "cdmio" => "application/cdmi-object" "cdmiq" => "application/cdmi-queue" "cdx" => "chemical/x-cdx" "cdxml" => "application/vnd.chemdraw+xml" "cdy" => "application/vnd.cinderella" "cer" => "application/pkix-cert" "cfs" => "application/x-cfs-compressed" "cgm" => "image/cgm" "chat" => "application/x-chat" "chm" => "application/vnd.ms-htmlhelp" "chrt" => "application/vnd.kde.kchart" "cif" => "chemical/x-cif" "cii" => "application/vnd.anser-web-certificate-issue-initiation" "cil" => "application/vnd.ms-artgalry" "cla" => "application/vnd.claymore" "class" => "application/java-vm" "clkk" => "application/vnd.crick.clicker.keyboard" "clkp" => "application/vnd.crick.clicker.palette" "clkt" => "application/vnd.crick.clicker.template" "clkw" => "application/vnd.crick.clicker.wordbank" "clkx" => "application/vnd.crick.clicker" "clp" => "application/x-msclip" "cmc" => "application/vnd.cosmocaller" "cmdf" => "chemical/x-cmdf" "cml" => "chemical/x-cml" "cmp" => "application/vnd.yellowriver-custom-menu" "cmx" => "image/x-cmx" "cod" => "application/vnd.rim.cod" "com" => "application/x-msdownload" "conf" => "text/plain" "cpio" => "application/x-cpio" "cpp" => "text/x-c" "cpt" => "application/mac-compactpro" "crd" => "application/x-mscardfile" "crl" => "application/pkix-crl" "crt" => "application/x-x509-ca-cert" "csh" => "application/x-csh" "csml" => "chemical/x-csml" "csp" => "application/vnd.commonspace" "css" => "text/css" "cst" => "application/x-director" "csv" => "text/csv" "cu" => "application/cu-seeme" "curl" => "text/vnd.curl" "cww" => "application/prs.cww" "cxt" => "application/x-director" "cxx" => "text/x-c" "dae" => "model/vnd.collada+xml" "daf" => "application/vnd.mobius.daf" "dart" => "application/vnd.dart" "dataless" => "application/vnd.fdsn.seed" "davmount" => "application/davmount+xml" "dbk" => "application/docbook+xml" "dcr" => "application/x-director" "dcurl" => "text/vnd.curl.dcurl" "dd2" => "application/vnd.oma.dd2+xml" "ddd" => "application/vnd.fujixerox.ddd" "deb" => "application/x-debian-package" "def" => "text/plain" "deploy" => "application/octet-stream" "der" => "application/x-x509-ca-cert" "dfac" => "application/vnd.dreamfactory" "dgc" => "application/x-dgc-compressed" "dic" => "text/x-c" "dir" => "application/x-director" "dis" => "application/vnd.mobius.dis" "dist" => "application/octet-stream" "distz" => "application/octet-stream" "djv" => "image/vnd.djvu" "djvu" => "image/vnd.djvu" "dll" => "application/x-msdownload" "dmg" => "application/x-apple-diskimage" "dmp" => "application/vnd.tcpdump.pcap" "dms" => "application/octet-stream" "dna" => "application/vnd.dna" "doc" => "application/msword" "docm" => "application/vnd.ms-word.document.macroenabled.12" "docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document" "dot" => "application/msword" "dotm" => "application/vnd.ms-word.template.macroenabled.12" "dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template" "dp" => "application/vnd.osgi.dp" "dpg" => "application/vnd.dpgraph" "dra" => "audio/vnd.dra" "dsc" => "text/prs.lines.tag" "dssc" => "application/dssc+der" "dtb" => "application/x-dtbook+xml" "dtd" => "application/xml-dtd" "dts" => "audio/vnd.dts" "dtshd" => "audio/vnd.dts.hd" "dump" => "application/octet-stream" "dvb" => "video/vnd.dvb.file" "dvi" => "application/x-dvi" "dwf" => "model/vnd.dwf" "dwg" => "image/vnd.dwg" "dxf" => "image/vnd.dxf" "dxp" => "application/vnd.spotfire.dxp" "dxr" => "application/x-director" "ecelp4800" => "audio/vnd.nuera.ecelp4800" "ecelp7470" => "audio/vnd.nuera.ecelp7470" "ecelp9600" => "audio/vnd.nuera.ecelp9600" "ecma" => "application/ecmascript" "edm" => "application/vnd.novadigm.edm" "edx" => "application/vnd.novadigm.edx" "efif" => "application/vnd.picsel" "ei6" => "application/vnd.pg.osasli" "elc" => "application/octet-stream" "emf" => "application/x-msmetafile" "eml" => "message/rfc822" "emma" => "application/emma+xml" "emz" => "application/x-msmetafile" "eol" => "audio/vnd.digital-winds" "eot" => "application/vnd.ms-fontobject" "eps" => "application/postscript" "epub" => "application/epub+zip" "es3" => "application/vnd.eszigno3+xml" "esa" => "application/vnd.osgi.subsystem" "esf" => "application/vnd.epson.esf" "et3" => "application/vnd.eszigno3+xml" "etx" => "text/x-setext" "eva" => "application/x-eva" "evy" => "application/x-envoy" "exe" => "application/x-msdownload" "exi" => "application/exi" "ext" => "application/vnd.novadigm.ext" "ez" => "application/andrew-inset" "ez2" => "application/vnd.ezpix-album" "ez3" => "application/vnd.ezpix-package" "f" => "text/x-fortran" "f4v" => "video/x-f4v" "f77" => "text/x-fortran" "f90" => "text/x-fortran" "fbs" => "image/vnd.fastbidsheet" "fcdt" => "application/vnd.adobe.formscentral.fcdt" "fcs" => "application/vnd.isac.fcs" "fdf" => "application/vnd.fdf" "fe_launch" => "application/vnd.denovo.fcselayout-link" "fg5" => "application/vnd.fujitsu.oasysgp" "fgd" => "application/x-director" "fh" => "image/x-freehand" "fh4" => "image/x-freehand" "fh5" => "image/x-freehand" "fh7" => "image/x-freehand" "fhc" => "image/x-freehand" "fig" => "application/x-xfig" "flac" => "audio/x-flac" "fli" => "video/x-fli" "flo" => "application/vnd.micrografx.flo" "flv" => "video/x-flv" "flw" => "application/vnd.kde.kivio" "flx" => "text/vnd.fmi.flexstor" "fly" => "text/vnd.fly" "fm" => "application/vnd.framemaker" "fnc" => "application/vnd.frogans.fnc" "for" => "text/x-fortran" "fpx" => "image/vnd.fpx" "frame" => "application/vnd.framemaker" "fsc" => "application/vnd.fsc.weblaunch" "fst" => "image/vnd.fst" "ftc" => "application/vnd.fluxtime.clip" "fti" => "application/vnd.anser-web-funds-transfer-initiation" "fvt" => "video/vnd.fvt" "fxp" => "application/vnd.adobe.fxp" "fxpl" => "application/vnd.adobe.fxp" "fzs" => "application/vnd.fuzzysheet" "g2w" => "application/vnd.geoplan" "g3" => "image/g3fax" "g3w" => "application/vnd.geospace" "gac" => "application/vnd.groove-account" "gam" => "application/x-tads" "gbr" => "application/rpki-ghostbusters" "gca" => "application/x-gca-compressed" "gdl" => "model/vnd.gdl" "geo" => "application/vnd.dynageo" "gex" => "application/vnd.geometry-explorer" "ggb" => "application/vnd.geogebra.file" "ggt" => "application/vnd.geogebra.tool" "ghf" => "application/vnd.groove-help" "gif" => "image/gif" "gim" => "application/vnd.groove-identity-message" "gml" => "application/gml+xml" "gmx" => "application/vnd.gmx" "gnumeric" => "application/x-gnumeric" "gph" => "application/vnd.flographit" "gpx" => "application/gpx+xml" "gqf" => "application/vnd.grafeq" "gqs" => "application/vnd.grafeq" "gram" => "application/srgs" "gramps" => "application/x-gramps-xml" "gre" => "application/vnd.geometry-explorer" "grv" => "application/vnd.groove-injector" "grxml" => "application/srgs+xml" "gsf" => "application/x-font-ghostscript" "gtar" => "application/x-gtar" "gtm" => "application/vnd.groove-tool-message" "gtw" => "model/vnd.gtw" "gv" => "text/vnd.graphviz" "gxf" => "application/gxf" "gxt" => "application/vnd.geonext" "gz" => "application/x-gzip" "h" => "text/x-c" "h261" => "video/h261" "h263" => "video/h263" "h264" => "video/h264" "hal" => "application/vnd.hal+xml" "hbci" => "application/vnd.hbci" "hdf" => "application/x-hdf" "hh" => "text/x-c" "hlp" => "application/winhlp" "hpgl" => "application/vnd.hp-hpgl" "hpid" => "application/vnd.hp-hpid" "hps" => "application/vnd.hp-hps" "hqx" => "application/mac-binhex40" "htke" => "application/vnd.kenameaapp" "htm" => "text/html" "html" => "text/html" "hvd" => "application/vnd.yamaha.hv-dic" "hvp" => "application/vnd.yamaha.hv-voice" "hvs" => "application/vnd.yamaha.hv-script" "i2g" => "application/vnd.intergeo" "icc" => "application/vnd.iccprofile" "ice" => "x-conference/x-cooltalk" "icm" => "application/vnd.iccprofile" "ico" => "image/x-icon" "ics" => "text/calendar" "ief" => "image/ief" "ifb" => "text/calendar" "ifm" => "application/vnd.shana.informed.formdata" "iges" => "model/iges" "igl" => "application/vnd.igloader" "igm" => "application/vnd.insors.igm" "igs" => "model/iges" "igx" => "application/vnd.micrografx.igx" "iif" => "application/vnd.shana.informed.interchange" "imp" => "application/vnd.accpac.simply.imp" "ims" => "application/vnd.ms-ims" "in" => "text/plain" "ink" => "application/inkml+xml" "inkml" => "application/inkml+xml" "install" => "application/x-install-instructions" "iota" => "application/vnd.astraea-software.iota" "ipfix" => "application/ipfix" "ipk" => "application/vnd.shana.informed.package" "irm" => "application/vnd.ibm.rights-management" "irp" => "application/vnd.irepository.package+xml" "iso" => "application/x-iso9660-image" "itp" => "application/vnd.shana.informed.formtemplate" "ivp" => "application/vnd.immervision-ivp" "ivu" => "application/vnd.immervision-ivu" "jad" => "text/vnd.sun.j2me.app-descriptor" "jam" => "application/vnd.jam" "jar" => "application/java-archive" "java" => "text/x-java-source" "jisp" => "application/vnd.jisp" "jlt" => "application/vnd.hp-jlyt" "jnlp" => "application/x-java-jnlp-file" "joda" => "application/vnd.joost.joda-archive" "jpe" => "image/jpeg" "jpeg" => "image/jpeg" "jpg" => "image/jpeg" "jpgm" => "video/jpm" "jpgv" => "video/jpeg" "jpm" => "video/jpm" "js" => "application/javascript" "json" => "application/json" "jsonml" => "application/jsonml+json" "kar" => "audio/midi" "karbon" => "application/vnd.kde.karbon" "kfo" => "application/vnd.kde.kformula" "kia" => "application/vnd.kidspiration" "kml" => "application/vnd.google-earth.kml+xml" "kmz" => "application/vnd.google-earth.kmz" "kne" => "application/vnd.kinar" "knp" => "application/vnd.kinar" "kon" => "application/vnd.kde.kontour" "kpr" => "application/vnd.kde.kpresenter" "kpt" => "application/vnd.kde.kpresenter" "kpxx" => "application/vnd.ds-keypoint" "ksp" => "application/vnd.kde.kspread" "ktr" => "application/vnd.kahootz" "ktx" => "image/ktx" "ktz" => "application/vnd.kahootz" "kwd" => "application/vnd.kde.kword" "kwt" => "application/vnd.kde.kword" "lasxml" => "application/vnd.las.las+xml" "latex" => "application/x-latex" "lbd" => "application/vnd.llamagraphics.life-balance.desktop" "lbe" => "application/vnd.llamagraphics.life-balance.exchange+xml" "les" => "application/vnd.hhe.lesson-player" "lha" => "application/x-lzh-compressed" "link66" => "application/vnd.route66.link66+xml" "list" => "text/plain" "list3820" => "application/vnd.ibm.modcap" "listafp" => "application/vnd.ibm.modcap" "lnk" => "application/x-ms-shortcut" "log" => "text/plain" "lostxml" => "application/lost+xml" "lrf" => "application/octet-stream" "lrm" => "application/vnd.ms-lrm" "ltf" => "application/vnd.frogans.ltf" "lvp" => "audio/vnd.lucent.voice" "lwp" => "application/vnd.lotus-wordpro" "lzh" => "application/x-lzh-compressed" "m13" => "application/x-msmediaview" "m14" => "application/x-msmediaview" "m1v" => "video/mpeg" "m21" => "application/mp21" "m2a" => "audio/mpeg" "m2v" => "video/mpeg" "m3a" => "audio/mpeg" "m3u" => "audio/x-mpegurl" "m3u8" => "application/vnd.apple.mpegurl" "m4a" => "audio/mp4" "m4u" => "video/vnd.mpegurl" "m4v" => "video/x-m4v" "ma" => "application/mathematica" "mads" => "application/mads+xml" "mag" => "application/vnd.ecowin.chart" "maker" => "application/vnd.framemaker" "man" => "text/troff" "mar" => "application/octet-stream" "mathml" => "application/mathml+xml" "mb" => "application/mathematica" "mbk" => "application/vnd.mobius.mbk" "mbox" => "application/mbox" "mc1" => "application/vnd.medcalcdata" "mcd" => "application/vnd.mcd" "mcurl" => "text/vnd.curl.mcurl" "mdb" => "application/x-msaccess" "mdi" => "image/vnd.ms-modi" "me" => "text/troff" "mesh" => "model/mesh" "meta4" => "application/metalink4+xml" "metalink" => "application/metalink+xml" "mets" => "application/mets+xml" "mfm" => "application/vnd.mfmp" "mft" => "application/rpki-manifest" "mgp" => "application/vnd.osgeo.mapguide.package" "mgz" => "application/vnd.proteus.magazine" "mid" => "audio/midi" "midi" => "audio/midi" "mie" => "application/x-mie" "mif" => "application/vnd.mif" "mime" => "message/rfc822" "mj2" => "video/mj2" "mjp2" => "video/mj2" "mk3d" => "video/x-matroska" "mka" => "audio/x-matroska" "mks" => "video/x-matroska" "mkv" => "video/x-matroska" "mlp" => "application/vnd.dolby.mlp" "mmd" => "application/vnd.chipnuts.karaoke-mmd" "mmf" => "application/vnd.smaf" "mmr" => "image/vnd.fujixerox.edmics-mmr" "mng" => "video/x-mng" "mny" => "application/x-msmoney" "mobi" => "application/x-mobipocket-ebook" "mods" => "application/mods+xml" "mov" => "video/quicktime" "movie" => "video/x-sgi-movie" "mp2" => "audio/mpeg" "mp21" => "application/mp21" "mp2a" => "audio/mpeg" "mp3" => "audio/mpeg" "mp4" => "video/mp4" "mp4a" => "audio/mp4" "mp4s" => "application/mp4" "mp4v" => "video/mp4" "mpc" => "application/vnd.mophun.certificate" "mpe" => "video/mpeg" "mpeg" => "video/mpeg" "mpg" => "video/mpeg" "mpg4" => "video/mp4" "mpga" => "audio/mpeg" "mpkg" => "application/vnd.apple.installer+xml" "mpm" => "application/vnd.blueice.multipass" "mpn" => "application/vnd.mophun.application" "mpp" => "application/vnd.ms-project" "mpt" => "application/vnd.ms-project" "mpy" => "application/vnd.ibm.minipay" "mqy" => "application/vnd.mobius.mqy" "mrc" => "application/marc" "mrcx" => "application/marcxml+xml" "ms" => "text/troff" "mscml" => "application/mediaservercontrol+xml" "mseed" => "application/vnd.fdsn.mseed" "mseq" => "application/vnd.mseq" "msf" => "application/vnd.epson.msf" "msh" => "model/mesh" "msi" => "application/x-msdownload" "msl" => "application/vnd.mobius.msl" "msty" => "application/vnd.muvee.style" "mts" => "model/vnd.mts" "mus" => "application/vnd.musician" "musicxml" => "application/vnd.recordare.musicxml+xml" "mvb" => "application/x-msmediaview" "mwf" => "application/vnd.mfer" "mxf" => "application/mxf" "mxl" => "application/vnd.recordare.musicxml" "mxml" => "application/xv+xml" "mxs" => "application/vnd.triscape.mxs" "mxu" => "video/vnd.mpegurl" "n-gage" => "application/vnd.nokia.n-gage.symbian.install" "n3" => "text/n3" "nb" => "application/mathematica" "nbp" => "application/vnd.wolfram.player" "nc" => "application/x-netcdf" "ncx" => "application/x-dtbncx+xml" "nfo" => "text/x-nfo" "ngdat" => "application/vnd.nokia.n-gage.data" "nitf" => "application/vnd.nitf" "nlu" => "application/vnd.neurolanguage.nlu" "nml" => "application/vnd.enliven" "nnd" => "application/vnd.noblenet-directory" "nns" => "application/vnd.noblenet-sealer" "nnw" => "application/vnd.noblenet-web" "npx" => "image/vnd.net-fpx" "nsc" => "application/x-conference" "nsf" => "application/vnd.lotus-notes" "ntf" => "application/vnd.nitf" "nzb" => "application/x-nzb" "oa2" => "application/vnd.fujitsu.oasys2" "oa3" => "application/vnd.fujitsu.oasys3" "oas" => "application/vnd.fujitsu.oasys" "obd" => "application/x-msbinder" "obj" => "application/x-tgif" "oda" => "application/oda" "odb" => "application/vnd.oasis.opendocument.database" "odc" => "application/vnd.oasis.opendocument.chart" "odf" => "application/vnd.oasis.opendocument.formula" "odft" => "application/vnd.oasis.opendocument.formula-template" "odg" => "application/vnd.oasis.opendocument.graphics" "odi" => "application/vnd.oasis.opendocument.image" "odm" => "application/vnd.oasis.opendocument.text-master" "odp" => "application/vnd.oasis.opendocument.presentation" "ods" => "application/vnd.oasis.opendocument.spreadsheet" "odt" => "application/vnd.oasis.opendocument.text" "oga" => "audio/ogg" "ogg" => "audio/ogg" "ogv" => "video/ogg" "ogx" => "application/ogg" "omdoc" => "application/omdoc+xml" "onepkg" => "application/onenote" "onetmp" => "application/onenote" "onetoc" => "application/onenote" "onetoc2" => "application/onenote" "opf" => "application/oebps-package+xml" "opml" => "text/x-opml" "oprc" => "application/vnd.palm" "org" => "application/vnd.lotus-organizer" "osf" => "application/vnd.yamaha.openscoreformat" "osfpvg" => "application/vnd.yamaha.openscoreformat.osfpvg+xml" "otc" => "application/vnd.oasis.opendocument.chart-template" "otf" => "application/x-font-otf" "otg" => "application/vnd.oasis.opendocument.graphics-template" "oth" => "application/vnd.oasis.opendocument.text-web" "oti" => "application/vnd.oasis.opendocument.image-template" "otp" => "application/vnd.oasis.opendocument.presentation-template" "ots" => "application/vnd.oasis.opendocument.spreadsheet-template" "ott" => "application/vnd.oasis.opendocument.text-template" "oxps" => "application/oxps" "oxt" => "application/vnd.openofficeorg.extension" "p" => "text/x-pascal" "p10" => "application/pkcs10" "p12" => "application/x-pkcs12" "p7b" => "application/x-pkcs7-certificates" "p7c" => "application/pkcs7-mime" "p7m" => "application/pkcs7-mime" "p7r" => "application/x-pkcs7-certreqresp" "p7s" => "application/pkcs7-signature" "p8" => "application/pkcs8" "pas" => "text/x-pascal" "paw" => "application/vnd.pawaafile" "pbd" => "application/vnd.powerbuilder6" "pbm" => "image/x-portable-bitmap" "pcap" => "application/vnd.tcpdump.pcap" "pcf" => "application/x-font-pcf" "pcl" => "application/vnd.hp-pcl" "pclxl" => "application/vnd.hp-pclxl" "pct" => "image/x-pict" "pcurl" => "application/vnd.curl.pcurl" "pcx" => "image/x-pcx" "pdb" => "application/vnd.palm" "pdf" => "application/pdf" "pfa" => "application/x-font-type1" "pfb" => "application/x-font-type1" "pfm" => "application/x-font-type1" "pfr" => "application/font-tdpfr" "pfx" => "application/x-pkcs12" "pgm" => "image/x-portable-graymap" "pgn" => "application/x-chess-pgn" "pgp" => "application/pgp-encrypted" "php" => "application/x-php" "php3" => "application/x-php" "php4" => "application/x-php" "php5" => "application/x-php" "pic" => "image/x-pict" "pkg" => "application/octet-stream" "pki" => "application/pkixcmp" "pkipath" => "application/pkix-pkipath" "plb" => "application/vnd.3gpp.pic-bw-large" "plc" => "application/vnd.mobius.plc" "plf" => "application/vnd.pocketlearn" "pls" => "application/pls+xml" "pml" => "application/vnd.ctc-posml" "png" => "image/png" "pnm" => "image/x-portable-anymap" "portpkg" => "application/vnd.macports.portpkg" "pot" => "application/vnd.ms-powerpoint" "potm" => "application/vnd.ms-powerpoint.template.macroenabled.12" "potx" => "application/vnd.openxmlformats-officedocument.presentationml.template" "ppam" => "application/vnd.ms-powerpoint.addin.macroenabled.12" "ppd" => "application/vnd.cups-ppd" "ppm" => "image/x-portable-pixmap" "pps" => "application/vnd.ms-powerpoint" "ppsm" => "application/vnd.ms-powerpoint.slideshow.macroenabled.12" "ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow" "ppt" => "application/vnd.ms-powerpoint" "pptm" => "application/vnd.ms-powerpoint.presentation.macroenabled.12" "pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation" "pqa" => "application/vnd.palm" "prc" => "application/x-mobipocket-ebook" "pre" => "application/vnd.lotus-freelance" "prf" => "application/pics-rules" "ps" => "application/postscript" "psb" => "application/vnd.3gpp.pic-bw-small" "psd" => "image/vnd.adobe.photoshop" "psf" => "application/x-font-linux-psf" "pskcxml" => "application/pskc+xml" "ptid" => "application/vnd.pvi.ptid1" "pub" => "application/x-mspublisher" "pvb" => "application/vnd.3gpp.pic-bw-var" "pwn" => "application/vnd.3m.post-it-notes" "pya" => "audio/vnd.ms-playready.media.pya" "pyv" => "video/vnd.ms-playready.media.pyv" "qam" => "application/vnd.epson.quickanime" "qbo" => "application/vnd.intu.qbo" "qfx" => "application/vnd.intu.qfx" "qps" => "application/vnd.publishare-delta-tree" "qt" => "video/quicktime" "qwd" => "application/vnd.quark.quarkxpress" "qwt" => "application/vnd.quark.quarkxpress" "qxb" => "application/vnd.quark.quarkxpress" "qxd" => "application/vnd.quark.quarkxpress" "qxl" => "application/vnd.quark.quarkxpress" "qxt" => "application/vnd.quark.quarkxpress" "ra" => "audio/x-pn-realaudio" "ram" => "audio/x-pn-realaudio" "rar" => "application/x-rar-compressed" "ras" => "image/x-cmu-raster" "rcprofile" => "application/vnd.ipunplugged.rcprofile" "rdf" => "application/rdf+xml" "rdz" => "application/vnd.data-vision.rdz" "rep" => "application/vnd.businessobjects" "res" => "application/x-dtbresource+xml" "rgb" => "image/x-rgb" "rif" => "application/reginfo+xml" "rip" => "audio/vnd.rip" "ris" => "application/x-research-info-systems" "rl" => "application/resource-lists+xml" "rlc" => "image/vnd.fujixerox.edmics-rlc" "rld" => "application/resource-lists-diff+xml" "rm" => "application/vnd.rn-realmedia" "rmi" => "audio/midi" "rmp" => "audio/x-pn-realaudio-plugin" "rms" => "application/vnd.jcp.javame.midlet-rms" "rmvb" => "application/vnd.rn-realmedia-vbr" "rnc" => "application/relax-ng-compact-syntax" "roa" => "application/rpki-roa" "roff" => "text/troff" "rp9" => "application/vnd.cloanto.rp9" "rpss" => "application/vnd.nokia.radio-presets" "rpst" => "application/vnd.nokia.radio-preset" "rq" => "application/sparql-query" "rs" => "application/rls-services+xml" "rsd" => "application/rsd+xml" "rss" => "application/rss+xml" "rtf" => "application/rtf" "rtx" => "text/richtext" "s" => "text/x-asm" "s3m" => "audio/s3m" "saf" => "application/vnd.yamaha.smaf-audio" "sbml" => "application/sbml+xml" "sc" => "application/vnd.ibm.secure-container" "scd" => "application/x-msschedule" "scm" => "application/vnd.lotus-screencam" "scq" => "application/scvp-cv-request" "scs" => "application/scvp-cv-response" "scurl" => "text/vnd.curl.scurl" "sda" => "application/vnd.stardivision.draw" "sdc" => "application/vnd.stardivision.calc" "sdd" => "application/vnd.stardivision.impress" "sdkd" => "application/vnd.solent.sdkm+xml" "sdkm" => "application/vnd.solent.sdkm+xml" "sdp" => "application/sdp" "sdw" => "application/vnd.stardivision.writer" "see" => "application/vnd.seemail" "seed" => "application/vnd.fdsn.seed" "sema" => "application/vnd.sema" "semd" => "application/vnd.semd" "semf" => "application/vnd.semf" "ser" => "application/java-serialized-object" "setpay" => "application/set-payment-initiation" "setreg" => "application/set-registration-initiation" "sfd-hdstx" => "application/vnd.hydrostatix.sof-data" "sfs" => "application/vnd.spotfire.sfs" "sfv" => "text/x-sfv" "sgi" => "image/sgi" "sgl" => "application/vnd.stardivision.writer-global" "sgm" => "text/sgml" "sgml" => "text/sgml" "sh" => "application/x-sh" "shar" => "application/x-shar" "shf" => "application/shf+xml" "sid" => "image/x-mrsid-image" "sig" => "application/pgp-signature" "sil" => "audio/silk" "silo" => "model/mesh" "sis" => "application/vnd.symbian.install" "sisx" => "application/vnd.symbian.install" "sit" => "application/x-stuffit" "sitx" => "application/x-stuffitx" "skd" => "application/vnd.koan" "skm" => "application/vnd.koan" "skp" => "application/vnd.koan" "skt" => "application/vnd.koan" "sldm" => "application/vnd.ms-powerpoint.slide.macroenabled.12" "sldx" => "application/vnd.openxmlformats-officedocument.presentationml.slide" "slt" => "application/vnd.epson.salt" "sm" => "application/vnd.stepmania.stepchart" "smf" => "application/vnd.stardivision.math" "smi" => "application/smil+xml" "smil" => "application/smil+xml" "smv" => "video/x-smv" "smzip" => "application/vnd.stepmania.package" "snd" => "audio/basic" "snf" => "application/x-font-snf" "so" => "application/octet-stream" "spc" => "application/x-pkcs7-certificates" "spf" => "application/vnd.yamaha.smaf-phrase" "spl" => "application/x-futuresplash" "spot" => "text/vnd.in3d.spot" "spp" => "application/scvp-vp-response" "spq" => "application/scvp-vp-request" "spx" => "audio/ogg" "sql" => "application/x-sql" "src" => "application/x-wais-source" "srt" => "application/x-subrip" "sru" => "application/sru+xml" "srx" => "application/sparql-results+xml" "ssdl" => "application/ssdl+xml" "sse" => "application/vnd.kodak-descriptor" "ssf" => "application/vnd.epson.ssf" "ssml" => "application/ssml+xml" "st" => "application/vnd.sailingtracker.track" "stc" => "application/vnd.sun.xml.calc.template" "std" => "application/vnd.sun.xml.draw.template" "stf" => "application/vnd.wt.stf" "sti" => "application/vnd.sun.xml.impress.template" "stk" => "application/hyperstudio" "stl" => "application/vnd.ms-pki.stl" "str" => "application/vnd.pg.format" "stw" => "application/vnd.sun.xml.writer.template" "sub" => "text/vnd.dvb.subtitle" "sus" => "application/vnd.sus-calendar" "susp" => "application/vnd.sus-calendar" "sv4cpio" => "application/x-sv4cpio" "sv4crc" => "application/x-sv4crc" "svc" => "application/vnd.dvb.service" "svd" => "application/vnd.svd" "svg" => "image/svg+xml" "svgz" => "image/svg+xml" "swa" => "application/x-director" "swf" => "application/x-shockwave-flash" "swi" => "application/vnd.aristanetworks.swi" "sxc" => "application/vnd.sun.xml.calc" "sxd" => "application/vnd.sun.xml.draw" "sxg" => "application/vnd.sun.xml.writer.global" "sxi" => "application/vnd.sun.xml.impress" "sxm" => "application/vnd.sun.xml.math" "sxw" => "application/vnd.sun.xml.writer" "t" => "text/troff" "t3" => "application/x-t3vm-image" "taglet" => "application/vnd.mynfc" "tao" => "application/vnd.tao.intent-module-archive" "tar" => "application/x-tar" "tcap" => "application/vnd.3gpp2.tcap" "tcl" => "application/x-tcl" "teacher" => "application/vnd.smart.teacher" "tei" => "application/tei+xml" "teicorpus" => "application/tei+xml" "tex" => "application/x-tex" "texi" => "application/x-texinfo" "texinfo" => "application/x-texinfo" "text" => "text/plain" "tfi" => "application/thraud+xml" "tfm" => "application/x-tex-tfm" "tga" => "image/x-tga" "thmx" => "application/vnd.ms-officetheme" "tif" => "image/tiff" "tiff" => "image/tiff" "tmo" => "application/vnd.tmobile-livetv" "torrent" => "application/x-bittorrent" "tpl" => "application/vnd.groove-tool-template" "tpt" => "application/vnd.trid.tpt" "tr" => "text/troff" "tra" => "application/vnd.trueapp" "trm" => "application/x-msterminal" "tsd" => "application/timestamped-data" "tsv" => "text/tab-separated-values" "ttc" => "application/x-font-ttf" "ttf" => "application/x-font-ttf" "ttl" => "text/turtle" "twd" => "application/vnd.simtech-mindmapper" "twds" => "application/vnd.simtech-mindmapper" "txd" => "application/vnd.genomatix.tuxedo" "txf" => "application/vnd.mobius.txf" "txt" => "text/plain" "u32" => "application/x-authorware-bin" "udeb" => "application/x-debian-package" "ufd" => "application/vnd.ufdl" "ufdl" => "application/vnd.ufdl" "ulx" => "application/x-glulx" "umj" => "application/vnd.umajin" "unityweb" => "application/vnd.unity" "uoml" => "application/vnd.uoml+xml" "uri" => "text/uri-list" "uris" => "text/uri-list" "urls" => "text/uri-list" "ustar" => "application/x-ustar" "utz" => "application/vnd.uiq.theme" "uu" => "text/x-uuencode" "uva" => "audio/vnd.dece.audio" "uvd" => "application/vnd.dece.data" "uvf" => "application/vnd.dece.data" "uvg" => "image/vnd.dece.graphic" "uvh" => "video/vnd.dece.hd" "uvi" => "image/vnd.dece.graphic" "uvm" => "video/vnd.dece.mobile" "uvp" => "video/vnd.dece.pd" "uvs" => "video/vnd.dece.sd" "uvt" => "application/vnd.dece.ttml+xml" "uvu" => "video/vnd.uvvu.mp4" "uvv" => "video/vnd.dece.video" "uvva" => "audio/vnd.dece.audio" "uvvd" => "application/vnd.dece.data" "uvvf" => "application/vnd.dece.data" "uvvg" => "image/vnd.dece.graphic" "uvvh" => "video/vnd.dece.hd" "uvvi" => "image/vnd.dece.graphic" "uvvm" => "video/vnd.dece.mobile" "uvvp" => "video/vnd.dece.pd" "uvvs" => "video/vnd.dece.sd" "uvvt" => "application/vnd.dece.ttml+xml" "uvvu" => "video/vnd.uvvu.mp4" "uvvv" => "video/vnd.dece.video" "uvvx" => "application/vnd.dece.unspecified" "uvvz" => "application/vnd.dece.zip" "uvx" => "application/vnd.dece.unspecified" "uvz" => "application/vnd.dece.zip" "vcard" => "text/vcard" "vcd" => "application/x-cdlink" "vcf" => "text/x-vcard" "vcg" => "application/vnd.groove-vcard" "vcs" => "text/x-vcalendar" "vcx" => "application/vnd.vcx" "vis" => "application/vnd.visionary" "viv" => "video/vnd.vivo" "vob" => "video/x-ms-vob" "vor" => "application/vnd.stardivision.writer" "vox" => "application/x-authorware-bin" "vrml" => "model/vrml" "vsd" => "application/vnd.visio" "vsf" => "application/vnd.vsf" "vss" => "application/vnd.visio" "vst" => "application/vnd.visio" "vsw" => "application/vnd.visio" "vtu" => "model/vnd.vtu" "vxml" => "application/voicexml+xml" "w3d" => "application/x-director" "wad" => "application/x-doom" "wav" => "audio/x-wav" "wax" => "audio/x-ms-wax" "wbmp" => "image/vnd.wap.wbmp" "wbs" => "application/vnd.criticaltools.wbs+xml" "wbxml" => "application/vnd.wap.wbxml" "wcm" => "application/vnd.ms-works" "wdb" => "application/vnd.ms-works" "wdp" => "image/vnd.ms-photo" "weba" => "audio/webm" "webm" => "video/webm" "webp" => "image/webp" "wg" => "application/vnd.pmi.widget" "wgt" => "application/widget" "wks" => "application/vnd.ms-works" "wm" => "video/x-ms-wm" "wma" => "audio/x-ms-wma" "wmd" => "application/x-ms-wmd" "wmf" => "application/x-msmetafile" "wml" => "text/vnd.wap.wml" "wmlc" => "application/vnd.wap.wmlc" "wmls" => "text/vnd.wap.wmlscript" "wmlsc" => "application/vnd.wap.wmlscriptc" "wmv" => "video/x-ms-wmv" "wmx" => "video/x-ms-wmx" "wmz" => "application/x-msmetafile" "woff" => "application/font-woff" "wpd" => "application/vnd.wordperfect" "wpl" => "application/vnd.ms-wpl" "wps" => "application/vnd.ms-works" "wqd" => "application/vnd.wqd" "wri" => "application/x-mswrite" "wrl" => "model/vrml" "wsdl" => "application/wsdl+xml" "wspolicy" => "application/wspolicy+xml" "wtb" => "application/vnd.webturbo" "wvx" => "video/x-ms-wvx" "x32" => "application/x-authorware-bin" "x3d" => "model/x3d+xml" "x3db" => "model/x3d+binary" "x3dbz" => "model/x3d+binary" "x3dv" => "model/x3d+vrml" "x3dvz" => "model/x3d+vrml" "x3dz" => "model/x3d+xml" "xaml" => "application/xaml+xml" "xap" => "application/x-silverlight-app" "xar" => "application/vnd.xara" "xbap" => "application/x-ms-xbap" "xbd" => "application/vnd.fujixerox.docuworks.binder" "xbm" => "image/x-xbitmap" "xdf" => "application/xcap-diff+xml" "xdm" => "application/vnd.syncml.dm+xml" "xdp" => "application/vnd.adobe.xdp+xml" "xdssc" => "application/dssc+xml" "xdw" => "application/vnd.fujixerox.docuworks" "xenc" => "application/xenc+xml" "xer" => "application/patch-ops-error+xml" "xfdf" => "application/vnd.adobe.xfdf" "xfdl" => "application/vnd.xfdl" "xht" => "application/xhtml+xml" "xhtml" => "application/xhtml+xml" "xhvml" => "application/xv+xml" "xif" => "image/vnd.xiff" "xla" => "application/vnd.ms-excel" "xlam" => "application/vnd.ms-excel.addin.macroenabled.12" "xlc" => "application/vnd.ms-excel" "xlf" => "application/x-xliff+xml" "xlm" => "application/vnd.ms-excel" "xls" => "application/vnd.ms-excel" "xlsb" => "application/vnd.ms-excel.sheet.binary.macroenabled.12" "xlsm" => "application/vnd.ms-excel.sheet.macroenabled.12" "xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "xlt" => "application/vnd.ms-excel" "xltm" => "application/vnd.ms-excel.template.macroenabled.12" "xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template" "xlw" => "application/vnd.ms-excel" "xm" => "audio/xm" "xml" => "application/xml" "xo" => "application/vnd.olpc-sugar" "xop" => "application/xop+xml" "xpi" => "application/x-xpinstall" "xpl" => "application/xproc+xml" "xpm" => "image/x-xpixmap" "xpr" => "application/vnd.is-xpr" "xps" => "application/vnd.ms-xpsdocument" "xpw" => "application/vnd.intercon.formnet" "xpx" => "application/vnd.intercon.formnet" "xsl" => "application/xml" "xslt" => "application/xslt+xml" "xsm" => "application/vnd.syncml+xml" "xspf" => "application/xspf+xml" "xul" => "application/vnd.mozilla.xul+xml" "xvm" => "application/xv+xml" "xvml" => "application/xv+xml" "xwd" => "image/x-xwindowdump" "xyz" => "chemical/x-xyz" "xz" => "application/x-xz" "yang" => "application/yang" "yin" => "application/yin+xml" "z1" => "application/x-zmachine" "z2" => "application/x-zmachine" "z3" => "application/x-zmachine" "z4" => "application/x-zmachine" "z5" => "application/x-zmachine" "z6" => "application/x-zmachine" "z7" => "application/x-zmachine" "z8" => "application/x-zmachine" "zaz" => "application/vnd.zzazz.deck+xml" "zip" => "application/zip" "zir" => "application/vnd.zul" "zirz" => "application/vnd.zul" "zmm" => "application/vnd.handheld-entertainment+xml" 123 => "application/vnd.lotus-1-2-3" ] -headers: Swift_Mime_SimpleHeaderSet�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderSet.php#L16�\^�]8;;�\ {#5062 -factory: Swift_Mime_SimpleHeaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\SimpleHeaderFactory.php#L18�\^�]8;;�\ {#5061 -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5053 #charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#5052 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } #filter: null #safeMap: array:68 [ 97 => "a" 98 => "b" 99 => "c" 100 => "d" 101 => "e" 102 => "f" 103 => "g" 104 => "h" 105 => "i" 106 => "j" 107 => "k" 108 => "l" 109 => "m" 110 => "n" 111 => "o" 112 => "p" 113 => "q" 114 => "r" 115 => "s" 116 => "t" 117 => "u" 118 => "v" 119 => "w" 120 => "x" 121 => "y" 122 => "z" 65 => "A" 66 => "B" 67 => "C" 68 => "D" 69 => "E" 70 => "F" 71 => "G" 72 => "H" 73 => "I" 74 => "J" 75 => "K" 76 => "L" 77 => "M" 78 => "N" 79 => "O" 80 => "P" 81 => "Q" 82 => "R" 83 => "S" 84 => "T" 85 => "U" 86 => "V" 87 => "W" 88 => "X" 89 => "Y" 90 => "Z" 48 => "0" 49 => "1" 50 => "2" 51 => "3" 52 => "4" 53 => "5" 54 => "6" 55 => "7" 56 => "8" 57 => "9" 32 => " " 33 => "!" 42 => "*" 43 => "+" 45 => "-" 47 => "/" ] } -paramEncoder: Swift_Encoder_Rfc2231Encoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Encoder\Rfc2231Encoder.php#L16�\^�]8;;�\ {#5056 -charStream: Swift_CharacterStream_NgCharacterStream�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterStream\NgCharacterStream.php#L16�\^�]8;;�\ {#5058 -charReader: null -charReaderFactory: Swift_CharacterReaderFactory_SimpleCharacterReaderFactory�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\CharacterReaderFactory\SimpleCharacterReaderFactory.php#L16�\^�]8;;�\ {#5081} -charset: "utf-8" -datas: "" -datasSize: 0 -map: null -mapType: 0 -charCount: 0 -currentPos: 0 } } -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -charset: "utf-8" -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5055} } -headers: array:4 [ "content-transfer-encoding" => array:1 [ 0 => Swift_Mime_Headers_UnstructuredHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\UnstructuredHeader.php#L16�\^�]8;;�\ {#5064 -value: "base64" -name: "Content-Transfer-Encoding" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5053} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "content-disposition" => array:1 [ 0 => Swift_Mime_Headers_ParameterizedHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\ParameterizedHeader.php#L16�\^�]8;;�\ {#5054 -paramEncoder: Swift_Encoder_Rfc2231Encoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Encoder\Rfc2231Encoder.php#L16�\^�]8;;�\ {#5056} -params: array:1 [ "filename" => "sendgrid/x-smtpapi" ] -value: "inline" -name: "Content-Disposition" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5053} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "content-type" => array:1 [ 0 => Swift_Mime_Headers_ParameterizedHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\ParameterizedHeader.php#L16�\^�]8;;�\ {#5046 -paramEncoder: null -params: array:1 [ "name" => "sendgrid/x-smtpapi" ] -value: "application/octet-stream" -name: "Content-Type" -encoder: Swift_Mime_HeaderEncoder_QpHeaderEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\HeaderEncoder\QpHeaderEncoder.php#L16�\^�]8;;�\ {#5053} -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] "content-id" => array:1 [ 0 => Swift_Mime_Headers_IdentificationHeader�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\Headers\IdentificationHeader.php#L20�\^�]8;;�\ {#5045 -ids: array:1 [ 0 => "54b50e08a8c26f98eb28970cd0de604f@swift.generated" ] -emailValidator: Egulias\EmailValidator\EmailValidator�]8;;file://D:\rslaravel\vendor\egulias\email-validator\src\EmailValidator.php#L8�\^�]8;;�\ {#5093} -addressEncoder: Swift_AddressEncoder_IdnAddressEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\AddressEncoder\IdnAddressEncoder.php#L25�\^�]8;;�\ {#5051} -name: "Content-ID" -encoder: null -lineLength: 78 -lang: null -charset: "utf-8" -cachedValue: null } ] ] -order: array:2 [ "content-type" => 0 "content-transfer-encoding" => 1 ] -required: [] -charset: "utf-8" } -body: "{"personalizations":[{"custom_args":{"email_subject":"Remote Start Quote 102cmlzspagej5p - UNDEFINED UNDEFINED UNDEFINED anything","domain":"Remotely Started","tracking_id":13165,"tracking_model":"App\\Models\\Quote\\Quote"}}]}" -encoder: Swift_Mime_ContentEncoder_Base64ContentEncoder�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\ContentEncoder\Base64ContentEncoder.php#L16�\^�]8;;�\ {#5057} -idGenerator: Swift_Mime_IdGenerator�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mime\IdGenerator.php#L14�\^�]8;;�\ {#4652} -boundary: null -compositeRanges: array:3 [ "multipart/mixed" => array:2 [ 0 => 16 1 => 256 ] "multipart/alternative" => array:2 [ 0 => 256 1 => 4096 ] "multipart/related" => array:2 [ 0 => 4096 1 => 65536 ] ] -compoundLevelFilters: array:1 [ 69632 => array:1 [ 4096 => array:2 [ "text/plain" => 4096 "text/html" => 65536 ] ] ] -nestingLevel: 4096 -cache: Swift_KeyCache_DiskKeyCache�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\KeyCache\DiskKeyCache.php#L16�\^�]8;;�\ {#4530} -immediateChildren: [] -children: [] -maxLineLength: 78 -alternativePartOrder: array:3 [ "text/plain" => 1 "text/html" => 2 "multipart/related" => 3 ] -id: "54b50e08a8c26f98eb28970cd0de604f@swift.generated" -cacheKey: "1aec1b4352c9f3846f82e29e865851dd" #userContentType: "application/octet-stream" } ] -children: array:1 [ 0 => Swift_Image�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Image.php#L16�\^�]8;;�\ {#5059} ] -maxLineLength: 78 -alternativePartOrder: array:3 [ "text/plain" => 1 "text/html" => 2 "multipart/related" => 3 ] -id: "f5675bd7d499190eef951332186382e9@swift.generated" -cacheKey: "0d8e412636fe01d6c53d2d854dd8e39f" #userContentType: null } ] -children: array:2 [ 0 => Swift_MimePart�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\MimePart.php#L16�\^�]8;;�\ {#5076} 1 => Swift_Image�]8;;file://D:\rslaravel\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Image.php#L16�\^�]8;;�\ {#5059} ] -maxLineLength: 78 -alternativePartOrder: array:3 [ "text/plain" => 1 "text/html" => 2 "multipart/related" => 3 ] -id: "338afa852f559198d1773c3bac20e4eb@swift.generated" -cacheKey: "c52e6fab18a60f2a0dda361278c2b813" #userContentType: "text/html" -nestingLevel: 4096 } Process finished with exit code 1
  3. Using number_format() allowed me to see the precision of decimals but I had to go out to 11+ decimals or it would only show zeros. Once I hit the 11 decimal all the sudden it showed multiple 9's and other numbers. So weird how that crap works.
  4. I won't ever use anything except standard US currency and it will always only be 2 decimal points in cents, so if that means I don't have to worry about "fractional cents" then great. Otherwise please explain more as to what you mean by that term.
  5. Is there a php method I can use in the future to see that decimal precision so I can understand more quickly why it's not doing what I want?
  6. So I have this very simple integer/float conversion method to convert basically a money value like 573.06 to cents. The 573.06 would come in as a string from a submitted form value. I would run it through the following code and it was coming out the wrong value as 57305 not 57306 as expected. function convertToMoneyInteger($input) { return (int)($input * 100); } After some fiddling, I found a way to make it work but I'm not sure it's the best or most accurate way even after running multiple tests on random values. This is the new method that seems to work. function convertToMoneyInteger($input) { return (int)(string)($input * 100); } All I did was convert it back to a string before ultimately converting back to an integer. It just feels wrong or incorrect. I have an automated test that runs 106 assertions against the result of the convertToMoneyInteger method and it always comes back green. public function returns_correct_integer_for_convertToMoneyInteger_function() { $input = '573.06'; $this->assertEquals(57306, convertToMoneyInteger($input)); $input = '573.05'; $this->assertEquals(57305, convertToMoneyInteger($input)); $input = '573.07'; $this->assertEquals(57307, convertToMoneyInteger($input)); $input = '22.91'; $this->assertEquals(2291, convertToMoneyInteger($input)); $input = '34.54'; $this->assertEquals(3454, convertToMoneyInteger($input)); $input = '50.00'; $this->assertEquals(5000, convertToMoneyInteger($input)); for ($x = 0; $x <= 100; $x++){ $value = $this->rand_float(20, 600); $result = (string)($value * 100); // Only convert to string so it's not identical to the convert function as it would be pointless because it would always return true. $this->assertEquals($result, convertToMoneyInteger($value)); } } function rand_float($st_num=0,$end_num=1,$mul=100) { if ($st_num>$end_num) return false; return mt_rand($st_num*$mul,$end_num*$mul)/$mul; } Is this accurate enough or is there a better way?
  7. I'm wondering what code modifications we will have to do if the government eliminates the changing of daylight savings in the USA in the fall of 2023. I do not know if such a thing is hard coded into a php version or if it checks a global clock somewhere or what. If it's hard coded into the php software, will we have to upgrade to a specific version at some point to accommodate for the USA change? Or maybe this is something in the apache server instead and has nothing directly to do with php.
  8. Yeah I thought about banning the few IP that they have come from. I know one of them was from Russia. My main concern is that as long as the exception is throwing that I should be relatively ok if it keeps happening, it's just an annoyance at this point.
  9. I wish there was a way to share a Bugsnag report but I can't seem to find a way. So I took screenshots of a couple things that it shows me.
  10. In the last couple months a few of my websites (that are all hosted on my dedicated server) have been throwing errors to Bugsnag a couple times a week. I don't know what they mean really and google searching doesn't bring up this exact scenario to figure it out. This is the error that Laravel throws: Facade\Ignition\Exceptions\ViewException · Invalid Host "${ip}:${port}". In Bugsnag this is the curl replay that it shows. curl --request GET \ --header 'accept: */*' \ --header 'host: ${ip}:${port}' \ --header 'user-agent: curl/7.64.1' \ 'https://:0' This is the Slim error: InvalidArgumentException Uri port must be null or an integer between 1 and 65535 (inclusive) In Bugsnag this is the curl replay that it shows. curl --request GET \ --header 'Accept: */*' \ --header 'User-Agent: curl/7.64.1' \ 'https://${ip}:${port}/' Some of my sites run on Laravel and some on Slim. Both applications throw the error once it hits a certain point in loading the page, typically at a middleware level. I'd like to know if this is indicative of a hack or maybe just a crawler bot. It doesn't happen constantly like a brute force attack, just once or twice in a few seconds and then not again for a few days. I have one middleware returning true on an if() indicating that this may just be a bot crawler. Is there anything I can do or "should" do to prevent the error or prevent the attack if it is an attack?
  11. Wow you are amazing with mysql! That query seems to work just great. Almost seems to work a little faster too, just a smidge. Thank you so much!
  12. @Barand Thank you so much for the help. I've decided to use this version of your query with slight modifications that haven't impacted the performance from what I have tested. SELECT `a1`.`id` AS `id` FROM ( ( `customers` `a1` JOIN `customers` `b1` ON ( ( (`a1`.`email` = `b1`.`email`) AND(`a1`.`id` <> `b1`.`id`) AND( `a1`.`email` <> 'blah@example.com' ) AND( `b1`.`email` <> 'blah@example.com' ) ) ) ) JOIN `quotes` `q1` ON ( ( (`q1`.`customer_id` = `b1`.`id`) AND(`q1`.`purchased` = 1) ) ) ) UNION SELECT `a`.`id` AS `id` FROM ( ( `customers` `a` JOIN `customers` `b` ON ( ( (`a`.`phone` = `b`.`phone`) AND(`a`.`id` <> `b`.`id`) ) ) ) JOIN `quotes` `q` ON ( ( (`q`.`customer_id` = `b`.`id`) AND(`q`.`purchased` = 1) ) ) ) ORDER BY `id` The performance of that query isn't super for a single record pull but it's not terrible. It performs well enough for multi record pulls though. It doesn't seem like it can get any better, so I'm fine with it, have to be or the rest of the stuff won't work lol. One other thing that I wonder could be added to the query is 2 columns like `by_email` and `by_phone` where the values would be 1 or 0 depending on if the result came from finding it in the email or phone query OR if it found it in both queries then both those new columns would be 1. At this point I have no idea if this can even be done without performance issues. If you can help again that would be awesome.
  13. I tried your new query and yes it is much faster than mine when gathering a large number of records at a time, even when paging through the results it really shines. BUT it's still much slower than mine when grabbing a single record. Mine is still .0015 ish and your new one is .15 ish. Since I'll be doing both single and multi record queries this new query might be the way to go. With multi record pulls mine goes up in time exponentially where yours stays consistent at that .12-.15. I'd still like to get the single record pull down in time but it's liveable. I did email you my sql dumps, did you get them?
  14. Clearly we have something different between our table setups for this. I'll try to get you a version of my tables where the personal data is altered for privacy. Then hopefully you can find the cause behind the lag on my end.
  15. Nice example! Seems accurate enough in table layout to determine what I need figured out. The results you list for my query are the correct ones based on your table data. Customers 12 and 15 should be listed because the email or phone for those customers is the same as another customer that has a purchased of 1. Basically what I'm doing here is as new customers get added, it needs to check for previous customers and see if the email or phone is the same AND if any of the previous customers matching have also purchased. If that condition is true, then it returns the new customers id so that in the Eloquent relationship I simply need to see if a record in the view exists under the same customer_id that the model is for. This way I can easily determine if this customer is a repeat because they actually have purchased something and are not just another record in the db with similar data but still has never purchased. Querying the relationship will allow me to do an easy check like this: // The relationship will either return the database record or NULL // Obviously if it's NULL then the if statment fails and we know they aren't a repeat. if($customer->repeatCustomer){ // Do something } I ran your new query (minus the join for qa since that gives the wrong data back) and it's drastically slower when trying to view the records in phpmyadmin. My query can return a standard list of 25 in .45 seconds and when trying the same thing with yours is 12.9 seconds. Also just pulling a single record by a customer id that I know to be in the view returns in .0009 seconds but yours still takes 12.4 seconds to get the same single record. Here are the EXPLAINs for the 2 queries when gathering 25 rows, my query is the first image. Hopefully this information helps.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.