Преглед на файлове

Added originalTo and originalCc headers

Will Browning преди 3 години
родител
ревизия
9bfc7baba9
променени са 6 файла, в които са добавени 518 реда и са изтрити 375 реда
  1. 1 1
      README.md
  2. 14 0
      app/Mail/ForwardEmail.php
  3. 9 0
      app/Models/EmailData.php
  4. 173 168
      composer.lock
  5. 2 2
      config/version.yml
  6. 319 204
      package-lock.json

+ 1 - 1
README.md

@@ -243,7 +243,7 @@ To resolve this you simply need to add a DMARC record, for example:
 
 | Type | Host   | Value                       |
 |:-----|:-------|:----------------------------|
-| TXT  | _dmarc | "v=DMARC1; p=none; adkim=s" |
+| TXT  | _dmarc | "v=DMARC1; p=quarantine; adkim=s" |
 
 
 You should also have SPF and DKIM records in place.

+ 14 - 0
app/Mail/ForwardEmail.php

@@ -29,6 +29,8 @@ class ForwardEmail extends Mailable implements ShouldQueue, ShouldBeEncrypted
     protected $user;
     protected $alias;
     protected $sender;
+    protected $originalCc;
+    protected $originalTo;
     protected $displayFrom;
     protected $replyToAddress;
     protected $emailSubject;
@@ -60,6 +62,8 @@ class ForwardEmail extends Mailable implements ShouldQueue, ShouldBeEncrypted
         $this->user = $alias->user;
         $this->alias = $alias;
         $this->sender = $emailData->sender;
+        $this->originalCc = $emailData->originalCc ?? null;
+        $this->originalTo = $emailData->originalTo ?? null;
         $this->displayFrom = $emailData->display_from;
         $this->replyToAddress = $emailData->reply_to_address ?? $this->sender;
         $this->emailSubject = $emailData->subject;
@@ -205,6 +209,16 @@ class ForwardEmail extends Mailable implements ShouldQueue, ShouldBeEncrypted
                     $message->getHeaders()
                             ->addTextHeader('X-New-Cids', implode(',', $newCids));
                 }
+
+                if ($this->originalCc) {
+                    $message->getHeaders()
+                            ->addTextHeader('X-AnonAddy-Original-Cc', $this->originalCc);
+                }
+
+                if ($this->originalTo) {
+                    $message->getHeaders()
+                            ->addTextHeader('X-AnonAddy-Original-To', $this->originalTo);
+                }
             });
 
         if ($this->emailText) {

+ 9 - 0
app/Models/EmailData.php

@@ -13,6 +13,15 @@ class EmailData
         if (isset($parser->getAddresses('reply-to')[0])) {
             $this->reply_to_address = $parser->getAddresses('reply-to')[0]['address'];
         }
+
+        if ($originalCc = $parser->getHeader('cc')) {
+            $this->originalCc = $originalCc;
+        }
+
+        if ($originalTo = $parser->getHeader('to')) {
+            $this->originalTo = $originalTo;
+        }
+
         $this->subject = base64_encode($parser->getHeader('subject'));
         $this->text = base64_encode($parser->getMessageBody('text'));
         $this->html = base64_encode($parser->getMessageBody('html'));

Файловите разлики са ограничени, защото са твърде много
+ 173 - 168
composer.lock


+ 2 - 2
config/version.yml

@@ -5,9 +5,9 @@ current:
   major: 0
   minor: 8
   patch: 7
-  prerelease: 1-gdbe26b8
+  prerelease: 2-g339af30
   buildmetadata: ''
-  commit: dbe26b
+  commit: 339af3
   timestamp:
     year: 2020
     month: 10

Файловите разлики са ограничени, защото са твърде много
+ 319 - 204
package-lock.json


Някои файлове не бяха показани, защото твърде много файлове са промени