Ошибка PHPList для адресов электронной почты с начальными, конечными или несколькими смежными точками
PHPList (версия 2.10.17) не может отправлять сообщения на адреса, соответствующие одному из следующих форматов:
[email protected]
[email protected]
[email protected]
Сообщение об ошибке Could not instantiate mail function.
Код, о котором идет речь, таков:
function MailSend($header, $body) {
$to = "";
for($i = 0; $i < count($this->to); $i++)
{
if($i != 0) { $to .= ", "; }
$to .= $this->to[$i][0];
}
if ($this->Sender != "" && (bool) ini_get("safe_mode") === FALSE)
{
$old_from = ini_get("sendmail_from");
ini_set("sendmail_from", $this->Sender);
$params = sprintf("-oi -f %s", $this->Sender);
$rt = @mail($to, $this->EncodeHeader($this->Subject), $body,
$header, $params);
}
else
$rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header);
if (isset($old_from))
ini_set("sendmail_from", $old_from);
if(!$rt)
{
$this->SetError($this->Lang("instantiate"));
return false;
}
return true;
}
Выбранный путь кода:
else
$rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header);
Я не смог воспроизвести эту ошибку на своем собственном веб-сервере, где я настроил PHPList для целей тестирования.
К сожалению, единственная система, которая демонстрирует такое поведение, - это производственная система. Чтобы добавить к этому, у меня нет доступа к каким-либо файлам журналов на этом система - так что я действительно не знаю, что не так.
Мое лучшее предположение заключается в том, что для выполнения этой работы необходим какой-то "побег строки" в $to
, но я несколько неохотно вмешиваюсь в производственную систему (кроме вставки некоторых выходных данных журнала).
Кто-нибудь знает обходной путь для такого рода проблем?
1 answers
Это не ошибка, это ожидаемое поведение. Локальная часть адреса электронной почты (часть перед @
) может содержать .
, при условии, что это не первый и не последний символ, а также при условии, что он не появляется два или более раз подряд. Это означает, что все три примера являются недействительными адресами электронной почты.
Подробнее о действительных адресах электронной почты.