PHP контактная форма - динамический список адресов электронной почты на основе выбранных значений формы - PullRequest
0 голосов
/ 23 сентября 2018

Мне нужно динамически добавить несколько адресов электронной почты в поле Cc: письма, отправленного с помощью контактной формы.Письма в Cc: должны быть добавлены на основе выбранных значений выпадающего списка.В форме есть несколько раскрывающихся списков, и каждому значению присваивается количество адресов электронной почты.

Получатель сообщения - это система, которая автоматически открывает заявку, поэтому поле To:только 1 адрес электронной почты в жестком коде.Но исходя из других значений (paltform и priority), различные заинтересованные стороны должны быть проинформированы о том, что это электронное письмо было отправлено в систему.Например:

<tr>
 <td valign="top">
  <label for="priority"> Priority:</label>
</td>
 <td valign="top">
 <select name="priority">
  <option value="3">Normal</option>
  <option value="2">High</option>
  <option value="1">Critical</option>
 </td>
 </select>
 </tr>

 <tr>
 <td valign="top">
  <label for="platform">Platform:</label>
</td>
 <td valign="top">
 <select name="platform">
  <option value="windows">Windows</option>
  <option value="mac">MAC</option>
  <option value="ios">iOS</option>
  <option value="android">Android</option>
 </td>
 </select>
</tr>

Если приоритет = 1 (электронная почта1, электронная почта2, электронная почта3) и платформа = окна (электронная почта4, электронная почта5), поле Cc: должно содержать: электронная почта1, электронная почта2, электронная почта3, электронная почта4, электронная почта5.Всего имеется 5 раскрывающихся списков с 3-7 значениями в каждом, поэтому жесткое кодирование всех комбинаций нецелесообразно.

Каков наилучший способ сделать это?Лучше ли присвоить переменную заголовку Cc:, а затем заставить его извлекать электронные письма из предварительно определенных списков и составлять их в строку?

$to = 'email_address@mail.com' ;     
$subject = strip_tags($_POST['subject']);
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$_POST['email']." \r\n"; 
$headers .= "Cc: ".$_POST['need to compose this part']." \r\n";

Кроме того, было бы лучше сохранить списоксообщений Cc: вне сценария, чтобы их можно было изменить без изменения кода?

Буду признателен за любую помощь в этом.

1 Ответ

0 голосов
/ 23 сентября 2018

Храните вашу электронную почту в двух массивах: - первый массив для приоритета - второй массив для платформы

$arrPriority = array("email1 email2 email3", "email1 email2 email4", "email1 email3 email4");
$arrPlatform = array("windows" => "email5 email6", "mac" => "email5 email7", "ios" => "email6 email7", "android" => "email5 eamil6");
...
$headers .= "Cc: ".$arrPriority[$_POST['priority']]." ".$arrPlatform[$_POST['platform']]." \r\n";

При публикации вашего приоритета и платформы будет выбрана необходимая комбинация электронных писем Cc:

...