Всем привет — сообщение с сайта, отправленное через форму, которая создана при помощи конструктора форм — пришла на почту — функция mail php = но пришла только с КИРИЛИЧЕСКОГО домена
В общем вот как — с кирилического домена РФ — и версия PHP 5.5 = сообщение приходит
А на другом сервере
Доме RU — версия PHP 5.6 = сообщение на почту никак не приходит — не важно — это почта Яндекс — Мэла РУ — сообщения отправлено — но его нет
На данный момент сначала прикреплю Кирилический домен к серверу с PHP 5.6
Если все так же печально
То домен RU перепаркую на сервер с версией PHP 5.5
По итогу будет понятно — проблема в PHP или в том что домен Кирилический
Как то так — пока как то так
Скорее всего проблема в PHP — только что закинул сайт на PHP 5.6 = в итоге тишина = такая же копия на PHP 5.5 = работает нормально и сообщения отправляются
А кто знает — что вот это значит
Файл Test.php = в корне сайта имеет вот такой код — и там что-то передается наверное на какую то яндекс почту или как???
Вот код
Error_Reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
session_start();
define('PATH', dirname(__FILE__));
define(«VALID_CMS», 1);
include(PATH.'/core/cms.php');
cmsCore::getInstance();
echo DOMAIN;
$user['email'] = 'forlord@yandex.ru';
$send_pass = 'sdfsdfsdf';
$user['password'] = $send_pass;
$code = md5($user['email'].uniqid().'-'.microtime());
$codelink = HOST.'/activate/'.$code;
$letter = cmsCore::getLanguageTextFile('activation');
foreach($user as $key=>$value){
$letter= str_replace('{'.$key.'}', $value, $letter);
}
$letter= str_replace('{sitename}', cmsConfig::getConfig('sitename'), $letter);
$letter= str_replace('{codelink}', $codelink, $letter);
echo cmsCore::mailText($user['email'], 'Регистрация на сайте — '. cmsConfig::getConfig('sitename'), $letter);
Итого — по проблеме с версией PHP — отправкой сообщений — в итоге домен РУ — поставил на сервер где PHP 5.5 = итого — на почту все приходит — но очень странно — админ сервера смотрел у себя — и говорил 100% что сайт на PHP 5.6 — сообщения отправляет — и даже то, что яндекс и мэил ру гарантрованно сообщения получают — он мне какие-то коды отправлял — где все это прописано — но в итоге в Папке входящей так же как и в папке СПАМ — было ПУСТО — в итог с версии PHP 5.6 = перешел на сервер где 5.5 — все работает — так что не факт что у тех, у кого PHP выше чем 5.5 будет корректно почта приниматься
В общем еще один момент — я уже писал ранее — что в настройке сайте — почта сайта — прописав E-Mail сайта и Название Отправителя — в итоге на почту приходит не то, что прописано в админке — а конструкция типа Root USERS — в общем то что можно поменять руками в файле — class.phpmailer.php = то что в include/mailer = там найти не трудно
В итоге — мне админ Мэилер класс сам поправил — как то это увидел, и в коде вот что поменял — я его даже не просил — наверное умный человек — в итоге в файле класса мэилера — class.phpmailer.php
было вот так
Примерно 600 строка
private function mailPassthru($to, $subject, $body, $header, $params)
{
//Check overloading of mail function to avoid double-encoding
if (ini_get('mbstring.func_overload') & 1) {
$subject = $this->secureHeader($subject);
} else {
$subject = $this->encodeHeader($this->secureHeader($subject));
}
//Can't use additional_parameters in safe_mode, calling mail() with null params breaks
//@link php.net/manual/en/function.mail.php
if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
$result = @mail($to, $subject, $body, $header);
} else {
$result = @mail($to, $subject, $body, $header, $params);
}
return $result;
}
Стало
private function mailPassthru($to, $subject, $body, $header, $params)
{
//Check overloading of mail function to avoid double-encoding
if (ini_get('mbstring.func_overload') & 1) {
$subject = $this->secureHeader($subject);
} else {
$subject = $this->encodeHeader($this->secureHeader($subject));
}
//Can't use additional_parameters in safe_mode, calling mail() with null params breaks
//@link php.net/manual/en/function.mail.php
if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
$result = @mail($to, $subject, $body, $header);
} else {
$result = @mail($to, $subject, $body, $header);
// $result = @mail($to, $subject, $body, $header, $params);
}
return $result;
}
Итого — он просто из кода — вот что убрал — $params
Не знаю на сколько это на что-то еще влияет — но сайт начал присылать сообщения именно в соответствие с тем — что написано в Админке в настройках
Как то так!
PS: а кто-нибудь читает? А то я в итоге сообщения пишу — потом добавляю — оно добавляется к старому сообщению и старое становится больше — а не появляется новое сообщение — и в итоге — хоть кто-то читает? Не понятно!)