Modx не отправляет письма на почту
Добрый день!
Не давно я писал о своей проблеме с файловым менеджером. Теперь обнаружил ещё одну.
Если коротко, то есть VPS, настроенный по статье Василия. На нём есть несколько сайтов на Modx Revo. Недавно я обнаружил, что не один из сайтов не отправляет письма на почту: форма заказа minishop, другие формы formit, а так же при обновлении пароля пользователя и отправке его на почту (в админке modx) письма тоже не приходят.
Подскажите, пожалуйста, в чём может быть дело? Возможно, это тоже связано с правами на сервере?
Не давно я писал о своей проблеме с файловым менеджером. Теперь обнаружил ещё одну.
Если коротко, то есть VPS, настроенный по статье Василия. На нём есть несколько сайтов на Modx Revo. Недавно я обнаружил, что не один из сайтов не отправляет письма на почту: форма заказа minishop, другие формы formit, а так же при обновлении пароля пользователя и отправке его на почту (в админке modx) письма тоже не приходят.
Подскажите, пожалуйста, в чём может быть дело? Возможно, это тоже связано с правами на сервере?
Комментарии: 17
Настраивать на сервере отправку почты (sendmail для php) или делать отправку из MODx с помощью smtp — в настройках системы подраздел Почта у раздела core. Второе легче сделать.
Нужно просто поставить почтовый сервер:
Обслуживание входящей почты советую отдать Яндексу.
Если будут проблемы с отправкой почты на тот же домен, по которому отзывается сервер (sendmail будет думать, что он должен доставить почту сам себе и не отправит её на Яндекс) — вот тут лечение.
sudo apt-get install sendmail
Обслуживание входящей почты советую отдать Яндексу.
Если будут проблемы с отправкой почты на тот же домен, по которому отзывается сервер (sendmail будет думать, что он должен доставить почту сам себе и не отправит её на Яндекс) — вот тут лечение.
Спасибо, попробую
Еще, вроде как, надо пристать к хостеру, чтобы он прописал PTR запись, иначе почта может попадать в спам или вовсе не доходить.
Поставил почтовый сервер, пока что без делегации домена Яндексу.
При отправке через Formit, браузер долго думает, а потом получаю: 504 Gateway Time-out nginx/1.2.3. При отправке пароля юзеру из админки, тоже долго думает, но всё же отправляет.
В какую сторону копать?
При отправке через Formit, браузер долго думает, а потом получаю: 504 Gateway Time-out nginx/1.2.3. При отправке пароля юзеру из админки, тоже долго думает, но всё же отправляет.
В какую сторону копать?
Почитай про настройку sendmail на хостинге?
Когда долго думает — проблема в разрешении имён, он обычно говорит об этом при установке и перезапуске.
Пропиши в /etc/hosts ip сервера и его доменное имя.
Например, у меня так:
Когда долго думает — проблема в разрешении имён, он обычно говорит об этом при установке и перезапуске.
Пропиши в /etc/hosts ip сервера и его доменное имя.
Например, у меня так:
151.236.219.215 bezumkin bezumkin.ru
Подредактировал /etc/hosts. После этого Modx стал нормально отправлять письма из админки, но сайты так и не отправляют. Уже всё про настройку Sendmail перегуглил. Вроде всё правильно прописал, но так и не полечатся решить…
В логах Sendmail при попытке отправить письмо через Formit выдаёт следующее:
В логах Sendmail при попытке отправить письмо через Formit выдаёт следующее:
/var/log/syslog-Jan 19 16:22:44 vm10921 sendmail[31526]: r0JCMiBd031526: Authentication-Warning: heis.pro: heis set sender to http://art-vision.heis.pro/ using -f
/var/log/syslog-Jan 19 16:22:45 vm10921 sendmail[31526]: r0JCMiBd031526: from=http://art-vision.heis.pro/, size=1252, class=0, nrcpts=1, msgid=<7ebc9e0695094df1eb9e190a38778ee3@heis.pro>, relay=heis
@localhost
/var/log/syslog-Jan 19 16:22:45 vm10921 sendmail[31526]: r0JCMiBd031526: to=webmaker27@gmail.com, delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=31252, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0,
stat=Data format error
Здравствуйте!
Помогите пожалуйста, есть VPS на нем несколько сайтов (вирт. хостов), к каждому подключен pdd.yandex, в данный момент почта отправляется только с одного сайта подключенному к нему pdd.yandex.
Голову сломал, как можно настроить, чтобы с каждого сайта почта отправлялась к подключенному ему pdd.yandex?
Увидел статью о modMail, я ведь правильно понимаю, для его использования все равно должен быть настроен почтовый сервер?
Заранее большое спасибо!
Помогите пожалуйста, есть VPS на нем несколько сайтов (вирт. хостов), к каждому подключен pdd.yandex, в данный момент почта отправляется только с одного сайта подключенному к нему pdd.yandex.
Голову сломал, как можно настроить, чтобы с каждого сайта почта отправлялась к подключенному ему pdd.yandex?
Увидел статью о modMail, я ведь правильно понимаю, для его использования все равно должен быть настроен почтовый сервер?
Заранее большое спасибо!
Настрой каждому сайту отправку через smtp, почтовый сервер тут не нужен.
Большое спасибо! Это из настроек системы, отсортировав по «Почта»?
Дайте человеку в отпуске отдохнуть =)
Ой, извиняюсь, видел же заметку ))
Да, конечно, где же еще?
Круто, все получилось, спасибо!!! ))
Не мог понять почему выдавало ошибку:
На такой же от имени которого отправляет Formit, и все получилось ))
Не мог понять почему выдавало ошибку:
Произошла ошибка при попытке отправить почту. The following From address failed: ...
Исправил адрес почты не в профиле пользователя, а в настройках системы: emailsenderНа такой же от имени которого отправляет Formit, и все получилось ))
Добрый день!
Столкнулся с проблемой: есть сайт на modx revo, есть форма обратной связи с вложением, письмо отправляется, вложение — нет! Отправка происходит с помощью обычного php файла в корне сайта, не через классы… пробовал отправлять с другого сайта modx revo — все прекрасно отправляется, включая вложение!
Отсюда сделал вывод, что необходимо подправить какие-то системные настройки сайта… или дело в настройках хостинга? Оба сайта лежат на бегете, только учетки разные, к хостингу проблемного сайта пока доступа нет, к сожалению — только админка…
ПОдскажите, пожалуйста, возможно ли настроить отправку вложений через админку сайта, не применяя классы?
Заранее спасибо!
Столкнулся с проблемой: есть сайт на modx revo, есть форма обратной связи с вложением, письмо отправляется, вложение — нет! Отправка происходит с помощью обычного php файла в корне сайта, не через классы… пробовал отправлять с другого сайта modx revo — все прекрасно отправляется, включая вложение!
Отсюда сделал вывод, что необходимо подправить какие-то системные настройки сайта… или дело в настройках хостинга? Оба сайта лежат на бегете, только учетки разные, к хостингу проблемного сайта пока доступа нет, к сожалению — только админка…
ПОдскажите, пожалуйста, возможно ли настроить отправку вложений через админку сайта, не применяя классы?
Заранее спасибо!
Интересные дела получаются!
Я вставляю в шаблон форму обратной связи, заполняю поля, отправляю… вот код формы:
ОДНАКО:
если я создаю отдельный файл в корне сайта, копирую в него всю форму, отправляю с неё письмо с вложением, то письмо приходит нормально, с вложением…
Отсюда делаю вывод, что дело в самом ModX… господа, можете посоветовать, в какую сторону нужно рыть??? Я пересмотрел все настройки системы, результат — ноль!
Уже моСк кипит…
Я вставляю в шаблон форму обратной связи, заполняю поля, отправляю… вот код формы:
<form enctype="multipart/form-data" method="post" action="contact.php" name="contactform" id="contactform">
<div class="one_half element_from_left">
<input name="name" type="text" id="name" size="30" placeholder="Имя">
<input name="email" type="text" id="email" size="30" placeholder="Почта">
<input name="phone" type="text" id="phone" size="30" placeholder="Телефон">
<input type="file" name="filet" accept="*/*" id="file_send">
</div>
<div class="one_half last element_from_right">
<textarea name="comments" cols="40" rows="4" id="comments" placeholder="Сообщение"></textarea>
</div>
<input type="submit" class="send_message" id="submit" value="Отправить сообщение" />
</form>
Форма отсылается на отдельный файлик, расположеный в корне сайта, вот его код: <?php
if(!$_POST) exit;
// Email address verification, do not edit.
function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}
if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
$name = $_POST['name'];
$email = $_POST['email'];
//$email = 'mail@вывески-омск.рф';
$phone = $_POST['phone'];
$comments = $_POST['comments'];
if(trim($name) == '') {
echo '<div class="error_message">Внимание! Введите своё имя</div>';
exit();
} else if(trim($email) == '') {
echo '<div class="error_message">Внимание! Введите свою почту</div>';
exit();
} else if(trim($phone) == '') {
echo '<div class="error_message">Внимание! Введите свой телефон</div>';
exit();
} else if(!is_numeric($phone)) {
echo '<div class="error_message">Внимание! Телефон может содержать только цифры.</div>';
exit();
} else if(!isEmail($email)) {
echo '<div class="error_message">Внимание! Вы ввели неверный адрес электронной почты, попробуйте еще раз</div>';
exit();
} else if(trim($comments) == '') {
echo '<div class="error_message">Внимание! Пожалуйста, введите ваше сообщение.</div>';
exit();
}
if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}
// Configuration option.
// Enter the email address that you want to emails to be sent to.
// Example $address = "joe.doe@yourdomain.com";
//$address = "example@themeforest.net";
$address = "mail@yandex.ru";
// Configuration option.
// i.e. The standard subject will appear as, "You've been contacted by John Doe."
// Example, $e_subject = '$name . ' has contacted you via Your Website.';
$e_subject = 'Вы получили письмо от ' . $name . '.';
// Configuration option.
// You can change this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.
$e_body = "Имя: $name" . PHP_EOL . PHP_EOL;
$e_reply = "Почта: $email\r\nТелефон: $phone\r\n";
$e_content = "\r\nСообщение: $comments" . PHP_EOL . PHP_EOL;
$msg = $e_body . $e_reply . $e_content;
$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
//$headers .= "MIME-Version: 1.0" . PHP_EOL;
//$headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
//$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
//$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
//if (isset($_FILES["filet"]["tmp_name"])) {
$attachment = chunk_split(base64_encode(file_get_contents($_FILES["filet"]["tmp_name"])));
$filename = $_FILES["filet"]["name"];
$filetype = $_FILES["filet"]["type"];
$boundary = md5(date("r", time()));
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"_1_$boundary\"";
$msg="
--_1_$boundary
Content-Type: multipart/alternative; boundary=\"_2_$boundary\"
--_2_$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit
$msg
--_2_$boundary--
--_1_$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
$attachment
--_1_$boundary--";
//}
if(mail($address, $e_subject, $msg, $headers)) {
// Email has sent successfully, echo a success page.
echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Ваше письмо успешно отправлено.</h1>";
echo "<p>Спасибо <strong>$name</strong>, Мы ответим вам в ближайшее время</p>";
echo "<pre>";
print_r($_FILES["filet"]);
echo "</pre>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'Ошибка отправки почты!';
}
Письмо благополучно уходит, но на ящик приходит всё, кроме вложения! ОДНАКО:
если я создаю отдельный файл в корне сайта, копирую в него всю форму, отправляю с неё письмо с вложением, то письмо приходит нормально, с вложением…
Отсюда делаю вывод, что дело в самом ModX… господа, можете посоветовать, в какую сторону нужно рыть??? Я пересмотрел все настройки системы, результат — ноль!
Уже моСк кипит…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.