Fixed Sender header pass through

This commit is contained in:
Will Browning 2022-07-13 10:16:11 +01:00
parent 154600c6c1
commit 785552caee
4 changed files with 46 additions and 36 deletions

View file

@ -33,9 +33,11 @@ MAIL_FROM_NAME=Example
# The from address to be used for outgoing email notifications from AnonAddy
MAIL_FROM_ADDRESS=mailer@example.com
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_HOST=mail.example.com
MAIL_PORT=25
MAIL_ENCRYPTION=null
MAIL_ENCRYPTION=tls
MAIL_EHLO_DOMAIN=mail.example.com
MAIL_VERIFY_PEER=true
# The SMTP FROM address to be used if the alias address cannot be, e.g. for a custom domain that is not verified for sending
ANONADDY_RETURN_PATH=mailer@example.com

View file

@ -112,7 +112,9 @@ class CustomMailer extends Mailer
'To',
'Message-ID',
'Subject',
'Date'
'Date',
'Original-Sender',
'Sender'
])->toArray();
$signedEmail = $dkimSigner->sign($symfonyMessage, $options);
$symfonyMessage->setHeaders($signedEmail->getHeaders());
@ -159,6 +161,12 @@ class CustomMailer extends Mailer
$message->getHeaders()->remove('Alias-To');
}
// Add the original sender header here to prevent it altering the envelope from address
if ($originalSenderHeader = $message->getHeaders()->get('Original-Sender')) {
$message->getHeaders()->addMailboxHeader('Sender', $originalSenderHeader->getValue());
$message->getHeaders()->remove('Original-Sender');
}
return $this->transport->send($message, Envelope::create($envelopeMessage));
} finally {
//

View file

@ -181,7 +181,7 @@ class ForwardEmail extends Mailable implements ShouldQueue, ShouldBeEncrypted
if ($this->originalSenderHeader) {
$message->getHeaders()
->addMailboxHeader('Sender', base64_decode($this->originalSenderHeader));
->addTextHeader('Original-Sender', base64_decode($this->originalSenderHeader));
}
if ($this->emailInlineAttachments) {

64
package-lock.json generated
View file

@ -2032,9 +2032,9 @@
}
},
"node_modules/@vue/compiler-sfc": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.4.tgz",
"integrity": "sha512-WCaF33mlKLSvHDKvOD6FzTa5CI2FlMTeJf3MxJsNP0KDgRoI6RdXhHo9dtvCqV4Sywf9Owm17wTLT1Ymu/WsOQ==",
"version": "2.7.5",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.5.tgz",
"integrity": "sha512-f2xlkMzBLbTAUy13N4aJBnmb7+86WJqoGqHDibkGHd1/CabpNVvzhpBFlfWJjBrGWIcWywNGgGSuoWzpCUuD4w==",
"dependencies": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
@ -2976,9 +2976,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001365",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001365.tgz",
"integrity": "sha512-VDQZ8OtpuIPMBA4YYvZXECtXbddMCUFJk1qu8Mqxfm/SZJNSr1cy4IuLCOL7RJ/YASrvJcYg1Zh+UEUQ5m6z8Q==",
"version": "1.0.30001366",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001366.tgz",
"integrity": "sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA==",
"funding": [
{
"type": "opencollective",
@ -4018,9 +4018,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
"version": "1.4.186",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.186.tgz",
"integrity": "sha512-YoVeFrGd/7ROjz4R9uPoND1K/hSRC/xADy9639ZmIZeJSaBnKdYx3I6LMPsY7CXLpK7JFgKQVzeZ/dk2br6Eaw=="
"version": "1.4.187",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.187.tgz",
"integrity": "sha512-t3iFLHVIMhB8jGZ+8ui951nz6Bna5qKfhxezG3wzXdBJ79qFKPsE2chjjVFNqC1ewhfrPQrw9pmVeo4FFpZeQA=="
},
"node_modules/elliptic": {
"version": "6.5.4",
@ -8646,11 +8646,11 @@
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
},
"node_modules/vue": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.4.tgz",
"integrity": "sha512-8KGyyzFSj/FrKj1y7jyEpv8J4osgZx6Lk1lVzh1aP4BqsXZhATH1r0gdJNz00MMyBhK0/m2cNoPuOZ1NzeiUEw==",
"version": "2.7.5",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.5.tgz",
"integrity": "sha512-mUDXXgBIFr9dk0k/3dpB6wtnCxRhe9mbGxWLtha9mTUrEWkdkZW1d58vl98VKWH067NA8f1Wj4Qwq7y7DDYfyw==",
"dependencies": {
"@vue/compiler-sfc": "2.7.4",
"@vue/compiler-sfc": "2.7.5",
"csstype": "^3.1.0"
}
},
@ -8767,9 +8767,9 @@
}
},
"node_modules/vue-template-compiler": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.4.tgz",
"integrity": "sha512-FgaeXI80FzhtDEsixq3WBrHLWpU2gzLb2DFusm62TrmCQyETsnUp0kTLpbExrTUw7g5YOnRf+xkh73nuEX+jGQ==",
"version": "2.7.5",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.5.tgz",
"integrity": "sha512-f5aofPdhOtoCW2jnK+iehkfVizDSrLuiyHcgIlGrXlkBXpIDfvm3HNX8emrhEduj5o5NyVulVbwpXW+zpRZQNg==",
"dependencies": {
"de-indent": "^1.0.2",
"he": "^1.2.0"
@ -10771,9 +10771,9 @@
}
},
"@vue/compiler-sfc": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.4.tgz",
"integrity": "sha512-WCaF33mlKLSvHDKvOD6FzTa5CI2FlMTeJf3MxJsNP0KDgRoI6RdXhHo9dtvCqV4Sywf9Owm17wTLT1Ymu/WsOQ==",
"version": "2.7.5",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.5.tgz",
"integrity": "sha512-f2xlkMzBLbTAUy13N4aJBnmb7+86WJqoGqHDibkGHd1/CabpNVvzhpBFlfWJjBrGWIcWywNGgGSuoWzpCUuD4w==",
"requires": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
@ -11528,9 +11528,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001365",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001365.tgz",
"integrity": "sha512-VDQZ8OtpuIPMBA4YYvZXECtXbddMCUFJk1qu8Mqxfm/SZJNSr1cy4IuLCOL7RJ/YASrvJcYg1Zh+UEUQ5m6z8Q=="
"version": "1.0.30001366",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001366.tgz",
"integrity": "sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA=="
},
"chalk": {
"version": "4.1.2",
@ -12295,9 +12295,9 @@
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"electron-to-chromium": {
"version": "1.4.186",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.186.tgz",
"integrity": "sha512-YoVeFrGd/7ROjz4R9uPoND1K/hSRC/xADy9639ZmIZeJSaBnKdYx3I6LMPsY7CXLpK7JFgKQVzeZ/dk2br6Eaw=="
"version": "1.4.187",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.187.tgz",
"integrity": "sha512-t3iFLHVIMhB8jGZ+8ui951nz6Bna5qKfhxezG3wzXdBJ79qFKPsE2chjjVFNqC1ewhfrPQrw9pmVeo4FFpZeQA=="
},
"elliptic": {
"version": "6.5.4",
@ -15598,11 +15598,11 @@
"integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
},
"vue": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.4.tgz",
"integrity": "sha512-8KGyyzFSj/FrKj1y7jyEpv8J4osgZx6Lk1lVzh1aP4BqsXZhATH1r0gdJNz00MMyBhK0/m2cNoPuOZ1NzeiUEw==",
"version": "2.7.5",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.5.tgz",
"integrity": "sha512-mUDXXgBIFr9dk0k/3dpB6wtnCxRhe9mbGxWLtha9mTUrEWkdkZW1d58vl98VKWH067NA8f1Wj4Qwq7y7DDYfyw==",
"requires": {
"@vue/compiler-sfc": "2.7.4",
"@vue/compiler-sfc": "2.7.5",
"csstype": "^3.1.0"
}
},
@ -15693,9 +15693,9 @@
}
},
"vue-template-compiler": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.4.tgz",
"integrity": "sha512-FgaeXI80FzhtDEsixq3WBrHLWpU2gzLb2DFusm62TrmCQyETsnUp0kTLpbExrTUw7g5YOnRf+xkh73nuEX+jGQ==",
"version": "2.7.5",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.5.tgz",
"integrity": "sha512-f5aofPdhOtoCW2jnK+iehkfVizDSrLuiyHcgIlGrXlkBXpIDfvm3HNX8emrhEduj5o5NyVulVbwpXW+zpRZQNg==",
"requires": {
"de-indent": "^1.0.2",
"he": "^1.2.0"