Я уже несколько часов пытаюсь заставить почтовый скрипт работать на живом сервере. Он работает по назначению на моем локальном хосте.
Я использую точно такой же внешний SMTP-сервер, те же источники PHP и те же базы данных. Версия PHP и версия MySQL в сети и на локальном хосте идентичны.
Я все протестировал. Все работает так, как предполагалось, без физического процесса отправки. Он не отправляет (или получает) электронную почту. Я также пошел к системному администратору, чтобы он проверил, нет ли заблокированных писем или внутренних ошибок сервера, но и здесь все в порядке.
Я действительно пробовал все, что мог придумать, но не нашел проблемы. Кто-нибудь знает, что я могу попробовать дальше?
Вот так выглядит функция физической отправки:
private function sendPhysical($sReciepient) {
if ($oSmtpIn = fsockopen(SMTPSERVER, SMTPPORT)) {
fputs($oSmtpIn, "EHLO " . SMTPSERVER . "\r\n");
$aCodes["hello"] = fgets($oSmtpIn, 1024);
fputs($oSmtpIn, "auth login\r\n");
$aCodes["res"] = fgets($oSmtpIn, 1024);
fputs($oSmtpIn, $this->encodeUser() . "\r\n");
$aCodes["user"] = fgets($oSmtpIn, 1024);
fputs($oSmtpIn, $this->encodePassword() . "\r\n");
$aCodes["pass"] = fgets($oSmtpIn, 256);
fputs($oSmtpIn, "MAIL FROM: <" . $this->sFrom . ">\r\n");
$aCodes["From"] = fgets($oSmtpIn, 1024);
fputs($oSmtpIn, "RCPT TO: <" . $sReciepient . ">\r\n");
$aCodes["To"] = fgets($oSmtpIn, 1024);
fputs($oSmtpIn, "DATA\r\n");
$aCodes["data"] = fgets($oSmtpIn, 1024);
fputs($oSmtpIn, $this->generateHeader($sReciepient) . "\r\n\r\n" . $this->returnCompiledTemplate() . "\r\n.\r\n");
$aCodes["send"] = fgets($oSmtpIn, 256);
fputs($oSmtpIn, "QUIT\r\n");
fclose($oSmtpIn);
} else {
$aCodes["connection"] = false;
}
return $aCodes;
}
Кто-нибудь возможное решение? Я совершенно запутался, потому что он работает на локальном хосте и уже работал на онлайн-сервере до прошлой недели...