From 2b5bf4b911eabb32a73cdcd50ed5e3ec7c7af945 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 10 Mar 2017 14:46:51 -0800 Subject: [PATCH] Allow "bin/mail send-test" to accept raw email addresses via "--to" Summary: Ref T12372. This supports testing the `wordwrap()` patch discussed in that task. Test Plan: - Ran `bin/mail send-test --to email@domain.com` - Ran `bin/mail send-test --to username` Reviewers: chad, lvital Reviewed By: lvital Maniphest Tasks: T12372 Differential Revision: https://secure.phabricator.com/D17489 --- ...abricatorMailManagementSendTestWorkflow.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php b/src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php index ca1af3a18b..9f4e91ca22 100644 --- a/src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php +++ b/src/applications/metamta/management/PhabricatorMailManagementSendTestWorkflow.php @@ -93,7 +93,16 @@ final class PhabricatorMailManagementSendTestWorkflow ->execute(); $users = mpull($users, null, 'getUsername'); + $raw_tos = array(); foreach ($tos as $key => $username) { + // If the recipient has an "@" in any noninitial position, treat this as + // a raw email address. + if (preg_match('/.@/', $username)) { + $raw_tos[] = $username; + unset($tos[$key]); + continue; + } + if (empty($users[$username])) { throw new PhutilArgumentUsageException( pht("No such user '%s' exists.", $username)); @@ -122,13 +131,20 @@ final class PhabricatorMailManagementSendTestWorkflow $body = file_get_contents('php://stdin'); $mail = id(new PhabricatorMetaMTAMail()) - ->addTos($tos) ->addCCs($ccs) ->setSubject($subject) ->setBody($body) ->setIsBulk($is_bulk) ->setMailTags($tags); + if ($tos) { + $mail->addTos($tos); + } + + if ($raw_tos) { + $mail->addRawTos($raw_tos); + } + if ($args->getArg('html')) { $mail->setBody( pht(