mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-25 06:50:55 +01:00
Fix verbose email addresses being passed to mail adapters
Summary: Fixes T5233. - The mail adapter API currently expects plain addresses (like `a@b.com`) in `addTos()`, and some adapters can not accept fancy verbose addresses (like `"name" <a@b.com>`). - When we try to send error email, we pass the entire "From" header into the API. This is incorrect. - Since it would be nice to make this just work in the future, fix it inside the API. - Specifically, this is reached with: send email -> generates error -> we try to send you an email back -> we send it to your "From" -> some mailers choke on the fancy name if you have one. Test Plan: Processed an errorneous email with a fancy "From", got a response error. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T5233 Differential Revision: https://secure.phabricator.com/D10232
This commit is contained in:
parent
dedcfd0c91
commit
e4049e8797
1 changed files with 9 additions and 0 deletions
|
@ -96,6 +96,15 @@ final class PhabricatorMetaMTAMail extends PhabricatorMetaMTADAO {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addRawTos(array $raw_email) {
|
public function addRawTos(array $raw_email) {
|
||||||
|
|
||||||
|
// Strip addresses down to bare emails, since the MailAdapter API currently
|
||||||
|
// requires we pass it just the address (like `alincoln@logcabin.org`), not
|
||||||
|
// a full string like `"Abraham Lincoln" <alincoln@logcabin.org>`.
|
||||||
|
foreach ($raw_email as $key => $email) {
|
||||||
|
$object = new PhutilEmailAddress($email);
|
||||||
|
$raw_email[$key] = $object->getAddress();
|
||||||
|
}
|
||||||
|
|
||||||
$this->setParam('raw-to', $raw_email);
|
$this->setParam('raw-to', $raw_email);
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue