Форумы / National / Russian / Тех. поддержка / Отправка методом post

g.galashev
#1 03.12.2012 16:01

Вот плагин отправки сообщений из формы с сайта методом пост на электронную почту. Немного переделал плагин contactus. Проблема в том, что когда я в поле email ввожу нормальный адрес типа asd@yandex.ru к примеру, почта не уходит, а если в поле email ввести строчку типа "sdgsgs", всё нормально приходит на почту. Не могу понять, проблема в скрипте или хостинге. Саппорт помочь не может. Хостинг называется Hostinger.  Решил попробовать на другом хостинге Timeweb. Там вообще ничего не отправляется на этом же скрипте. Саппорт говорит у нас всё ок, проверьте скрипт. Я готовый плагин почти не менял. Помогите, кто может) Может поймёте трабл?

 

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=contactin
Part=main
File=contactin
Hooks=index.tags
Tags=index.tpl:{PLUGIN_CONTACTIN}
Order=10
[END_SED_EXTPLUGIN]
==================== */



defined('SED_CODE') or die('Wrong URL');
unset($plugin_body);

require_once sed_langfile('contactin.ru', 'plug');

$a = sed_import('a','P','ALP');
$subject = sed_import('subject','P','INT');
$message = sed_import('message','P','TXT');
$name = sed_import('name','P','STX');
$phone = sed_import('phone','P','STX');
$email = sed_import('email','P','STX');

$plugin_title = $L['plu_title'];


if ($a=="send") {

if (!is_numeric($subject) || empty($message) || empty($name) ||empty($email))
{ $error = $L['plu_empty']."<br />\n"; }


if (empty($error))
{
$rectr =$cfg['plugin']['contactin']['email'];
$cfgsubjects = explode(";", $cfg['plugin']['contactin']['subjects']);
$subrt = trim($cfgsubjects[$subject]);
$memb_ref = !empty($_SESSION['ref']) ? $_SESSION['ref'] : '';
$headers = ("From: ".$name."<".$email.">\n");
$body = $L['plu_notice']." ".$name.", Email: <".$email.">, Skype: ".$phone."\n\n";
$body .= $L['plu_message'].": \n\n".$message."\n";
$body .= "URL: ".$memb_ref;
sed_mail($rectr, $subrt, $body, $headers);

$ok = $L['plu_ok'];
unset($phone, $subject, $message, $name, $email);
}

}

if (!empty($error)) { $plugin_body .= "<span style=\"color: #FF0000;\">".$error."</span><br />"; }
if (!empty($ok)) { $plugin_body .= "<span style=\"color: #33CC33;\">".$ok."</span><br />"; }

$plugin_body .= "<form action=\"index.php\" method=\"post\">\n";


//Build recipients array and selectbox

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_subject']."</label>";

//Build subjects array and selectbox

$cfgsubjects = explode(";", $cfg['plugin']['contactin']['subjects']);
$plugin_body .= "<select name=\"subject\">\n";
$iii=0;
foreach($cfgsubjects as $x) {
if (!empty($x)) {
$subjects[$iii] = trim($x);
if ($iii==$subject || (empty($subject) && $iii==0)) {
$plugin_body .= "<option value=\"".$iii."\" selected=\"selected\">".$subjects[$iii]."</option>\n";
} else {
$plugin_body .= "<option value=\"".$iii."\">".$subjects[$iii]."</option>\n";
}
$iii++;
}
}
$plugin_body .= "</select>\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_sendername']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "<input type=\"text\" class=\"text\" name=\"name\" value=\"".sed_cc($name)."\" size=\"28\" maxlength=\"28\" />\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_senderphone']."</label>\n";
$plugin_body .= "<input type=\"text\" class=\"text\" name=\"phone\" value=\"".sed_cc($phone)."\" size=\"28\" maxlength=\"28\" />\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_sendermail']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "<input type=\"text\" class=\"text\" name=\"email\" value=\"".sed_cc($email)."\" size=\"28\" maxlength=\"28\" />\n";
$plugin_body .= "</div>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_message']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "<textarea cols=\"28\" rows=\"8\" name=\"message\">".sed_cc($message)."</textarea>\n";
$plugin_body .= "</div>\n";
$plugin_body .= "</fieldset>\n";

$plugin_body .= "<div class=\"form-item\"><label>".$L['plu_atten']."<span class='form-required' title='reqred'> *</span></label>\n";
$plugin_body .= "</div>\n";
$plugin_body .= "</fieldset>\n";

$plugin_body .= "<br />\n";
$plugin_body .= "<input type=\"hidden\" name=\"a\" value=\"send\" />\n";
$plugin_body .= "<input type=\"submit\" class=\"submit-l\" value=\"".$L['plu_send']."\" />\n";
$plugin_body .= "\n";
$plugin_body .= "</form>\n";

$t->assign('PLUGIN_CONTACTIN', $plugin_body);

?>

Added 33 minutes later:

Вот что написали на втором хостинге: "проблема может возникать из-за подстановки отправителя, на вашем сервере корректным отправителем через функцию php mail является hieronymus@huxley.timeweb.ru. Если указывать не корректного отправителя письма могут не проходить проверку по PTR записи на принимающей стороне"

Может у меня некорректно email отправителя пишется? Я не совсем понимаю где его поменять.

Отредактировано: g.galashev (03.12.2012 16:34, 11 лет назад)
Moool13
#2 03.12.2012 17:08

а если в поле email ввести строчку типа "sdgsgs", всё нормально приходит на почту

На какую же почту? sdgsgs@yandex.ru, sdgsgs@gmail.com, etc.?

 

 

g.galashev
#3 03.12.2012 18:20

На адрес, указанный в настройках плагина. 

А отправитель получается sdgsgs@srv17.main-hosting.eu Вот тут и загвоздка. По идее отправитель должен быть test@srv17.main-hosting.eu, а то что вводится в поле email, должно просто приходить в теле письма. Оно и приходит, но ещё и залезает в поле отправителя.

Nik Samokhvalov
#4 04.12.2012 08:06

Конечно оно будет залезать в поле отправителя, ведь у вас ф-ции sed_mail() передается заголовок:

$headers = ("From: ".$name."<".$email.">\n");

 

Sorry for my English.
g.galashev
#5 04.12.2012 17:29

как нужно сделать?

Added 35 minutes later:

всё понял, спасибо

Отредактировано: g.galashev (04.12.2012 18:04, 11 лет назад)