151

Re: Контакт

buyhtml пишет:

Здравствуйте, столкнулся с такой проблемой, когда заполняю поле "Имя" и к примеру, ввожу Кирилл Левушкин, на почту приходит Имя с неизвестно куда пропавшими буквами.

Также очень бесит строка webmaster@global-electricgroup.com - это можно изменить? к примеру написать там просто адрес сайта ?

Попробуйте в файле contact.plugin.php исправить строку:

$header = "From: ". $name . " <" . $email . ">\r\n";

на

$header = "From: ". $name . " <" . $email . ">\r\nContent-type: text/plain; charset=utf-8";

Поделиться

152

Re: Контакт

спасибо, но уже не актуально, купил платный плагин.

Верстка, Дизайн, Сайт "Под ключ".

Сайт buyhtml

Поделиться

153

Re: Контакт

можно поподробнее, про платный плагин?

автор, функционал, цена.

Поделиться

154

Re: Контакт

Не работает на кириллических доменах, что только уже не пробовал

Поделиться

155

Re: Контакт

Lobachevsky пишет:

Не работает на кириллических доменах, что только уже не пробовал

Что именно происходит? Как ошибка себя проявляет? Если можно, киньте  url.

p.s.: сам принципиально не регистрирую рф-домены, проверить не могу.

Поделиться

156

Re: Контакт

У меня на почту (gmail) приходят письма с темой кракозяблами.

все советы, которые здесь были даны ранее, применить не получилось, т.к. в коде нет переменной $headers, есть только $name, но к ней прицепить определение кодировки не получилось или это не работает (не программист я). Пробовал способы, здесь предложенные - iconv и сontent-type.

Не мог бы уважаемый разработчик написать, как можно определить правильную кодировку темы письма в коде сontact.plugin.php.

Ещё мне кажется недоработкой, что из письма неясно, что оно отправлено с сайта, отправителем указывается почтовый ящик, который пользователь забил в форме. Было бы хорошо. если бы письмо приходило с отметкой типа "from: siteurl". Где и как это можно дописать в коде?

Поделиться

157

Re: Контакт

zero18 пишет:

У меня на почту (gmail) приходят письма с темой кракозяблами.
все советы, которые здесь были даны ранее, применить не получилось, т.к. в коде нет переменной

Мой совет, парой постов выше вам не помог?
На странице "Настройки", в админке, нажали кнопку "Удалить временные файлы" после того, как внесли изменения в код плагина?

нет переменной $headers, есть только $name

67 строка в плагине:

$header = "From: ". $name . " <" . $email . ">\r\n";

Ещё мне кажется недоработкой, что из письма неясно, что оно отправлено с сайта, отправителем указывается почтовый ящик, который пользователь забил в форме. Было бы хорошо. если бы письмо приходило с отметкой типа "from: siteurl". Где и как это можно дописать в коде?

Добавьте 68 строку, что-то типа этого:

$body = $body . "\r\nFrom: " . Page::slug();

p.s.: можете купить плагин у JINN'а, в нем все это реализовано.
http://monstra.promo360.ru/plugin/forms

Поделиться

158

Re: Контакт

блин, ну написал же - нет там такой переменной. ВООБЩЕ нет, если непонятно.

                    if (count($errors) == 0) {
                        $mail = new PHPMailer();
                        $mail->SetFrom($email);
                        $mail->AddReplyTo($email);
                        $mail->AddAddress($recipient);
                        $mail->Subject = $name;
                        $mail->Body = $body;
                        if ($mail->Send()) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));

Поделиться

159

Re: Контакт

zero18 пишет:

ВООБЩЕ нет, если непонятно.

И откуда взят этот кусок кода?
Скачай плагин по ссылке в ПЕРВОМ посте и посмотри код плагина.

В оригинале это выглядит так (строки 63-76):

                    if (count($errors) == 0) {
                        $recipient = $recipient;
                        $subject = $name;
                        $header = "From: ". $name . " <" . $email . ">\r\n";
                        if (mail($recipient, $subject, $body, $header)) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
                        }
                    }

Поделиться

160

Re: Контакт

Вообще то это код с использованием мэйлера от автора Монстры.
Я мейлером не пользовался, но может попробовать в нем, в строке 59

  public $CharSet           = 'iso-8859-1';

поменять на

  public $CharSet           = 'utf-8';
Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

161

Re: Контакт

Да. в нем, это имеется в виду

libraries -> PHPMailer -> PHPMailer.php

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

162

Re: Контакт

sergeyterr пишет:

Да. в нем, это имеется в виду
libraries -> PHPMailer -> PHPMailer.php

Странно... Изначально речь шла именно о плагине:

zero18 пишет:

Не мог бы уважаемый разработчик написать, как можно определить правильную кодировку темы письма в коде сontact.plugin.php.

Поделиться

163

Re: Контакт

Да - но кусок кода он привел

if (count($errors) == 0) {
                        $mail = new PHPMailer();
                        $mail->SetFrom($email);
                        $mail->AddReplyTo($email);
                        $mail->AddAddress($recipient);
                        $mail->Subject = $name;
                        $mail->Body = $body;
                        if ($mail->Send()) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            Request::redirect(Page::url());
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

164

Re: Контакт

этот кусок кода именно из файла сontact.plugin.php

Поделиться

165

Re: Контакт

cпасибо sergeyterr, действительно, в PHPMailer есть такая строчка и это решило проблему с кодировкой.
плагин скачивал по ссылке автора Monstra, Awilum'а

Поделиться

166

Re: Контакт

Не работает на вложенных страницах.

Поделиться

167

Re: Контакт

loader пишет:

Пробема с формой обратной связи.

Вставляю шорткод в контент на странице второго уровня - /blabla/feedback

После нажатия на кнопку Отправить меня переправляет на страницу /feedback - которой не существует, т.е. не учитывается что страница на втором уровне находится.

Проблема не решена.

Поделиться

168 (2014-09-03 07:49:23 отредактировано Модест)

Re: Контакт

loader пишет:

Пробема с формой обратной связи.

Вставляю шорткод в контент на странице второго уровня - /blabla/feedback

После нажатия на кнопку Отправить меня переправляет на страницу /feedback - которой не существует, т.е. не учитывается что страница на втором уровне находится.

Решение для contact.plugin.php

                        if ($mail->Send()) {
                            Notification::set('success', __('A letter has been sent!', 'contact'));
                            header("Location: ".$_SERVER["REQUEST_URI"]);
                        } else {
                            Notification::set('error', __('A Letter was not sent!', 'contact'));
                        }

Поделиться

169

Re: Контакт

sergeyterr пишет:

Вообще то это код с использованием мэйлера от автора Монстры.
Я мейлером не пользовался, но может попробовать в нем, в строке 59

  public $CharSet           = 'iso-8859-1';

поменять на

  public $CharSet           = 'utf-8';

На заметку!
Можно вместо правки библиотеки, просто изменить плагин, а именно добавить
$mail->CharSet = 'utf-8';
после
$mail = new PHPMailer();

в contact.plugin.php

Поделиться

170

Re: Контакт

Вопрос такой у меня в сообщениях в поле "от кого" вместо почты, которую указывает пользователь при отправке сообщения стоит адрес моего хоста bizdk@maestro.beget.ru
Промониторил инет, проблема у многих на разных хостингах и разных движках.
Кто-нибудь встречался с такой проблемой?

Поделиться

171

Re: Контакт

нет никаких проблем. Проверено

To: 1@site.org
Subject: =?utf-8?B?0JXQs9C+0YA=?=
X-PHP-Originating-Script: 0:PHPMailer.php
Date: Sun, 26 Oct 2014 15:04:40 +0400
Return-Path: 12@rtr.ru
From: 12@rtr.ru
Reply-To: 12@rtr.ru

Поделиться

172

Re: Контакт

Вот что пришло от хостера

Здравствуйте,
в связи с массовыми рассылками спама и мошеннических писем с наших серверов был внесен ряд изменений в работу функции php mail(),
в частности:

При отправке писем со сторонних доменов (не на наших DNS серверах, например mail.ru, gmail.com, проверка производится по NS - записям домена) выполняется замена адреса отправителя в поле From: на технический адрес на сервере вида $login@$server_name.beget.ru,
оригинальное содержимое поля From: подставляется в заголовок Reply-To: чтобы сохранить возможность ответа по почтовому адресу, который был указан для связи в форме обратной связи сайта.

Поделиться

173

Re: Контакт

ну вот видите как. А вы на плагин грешите. Пишите в поддержку хостинга и спрашивайте что делать. Или поменяйте хостера на "нормального"

Поделиться

174

Re: Контакт

ravilr пишет:

ну вот видите как. А вы на плагин грешите. Пишите в поддержку хостинга и спрашивайте что делать. Или поменяйте хостера на "нормального"

А кто сказал, что я на плагин грешу?
Я тут совета просил.
Да хостюсь на beget.ru - вроде раньше проблем не было

Поделиться

175

Re: Контакт

Кстати, выкладыаю ответ хостера по данной проблеме

Cтандарты RFC используются во всем мире. Хотя данные стандарты не запрещают указание произвольного поля From: но не рекомендуют это делать.
Данная возможность на самом деле является дыркой в безопасности электронной почты, и позволяет рассылать фишинговые (мошеннические) письма направленные на кражу пользовательских данных на каком либо сервере.
Также это частично способствует неконтролируемой рассылке спама и в итоге страдает репутация наших серверов, с которых отправляются письма,
IP адреса попадают в блок-листы и нормальные письма перестают доходить до получателей; Напомню, что Вы размещаетесь на виртуальном хостинге, на данном сервере одновременно с Вами более 100 клиентов, все они рассылают письма.
При этом мы не можем гарантировать что никого из клиентов не взломают и не начнут рассылать спам или фишинг с их сайтов (в том числе это могут быть и Ваши сайты).
Как следствие IP адрес сервера может попасть в блок лист и у остальных пользователей перестанет отправляться почта на часть сервисов, тот же mail.ru например, который достаточно популярен в Рунете.
Что касается форм обратной связи, то они в принципе не должны подставлять обратный адрес клиента в поле From, а должны подставлять его в поле Reply-To, которое и предназначено для этих целей.
Адрес From: не должен подменяться адресом, который не обслуживается на сервере, с которого отправлялось письмо. В Вашем случае можно поправить настройки обратной связи чтобы письма приходили с ящика домена сайта,
а обратный адрес клиента подставлять в Reply-To При ответе на такое письмо ответ уйдет по обратному адресу клиента и дальнейшая переписка уже будет персонифицирована, так как ответ на Ваше письмо уже придет от клиента.
Есть еще один вариант решения, указать почтовый ящик доменного имени , например magazin@shapovalov5.ru(создать ящик можно в разделе Почта), тогда заголовок подменяться не будет.
И ещё один вариант решения, заказать выделенный IP адрес, мы настроим отправку писем с Вашего аккаунта с этого IP и уберем подмену заголовков, таким образом всё будет как раньше, при этом отправка Ваших писем не будет зависеть от других клиентов.

Поделиться