как сделать чтоб из формы данные уходили не в базу а отправлялись на мыло?

Статус
В этой теме нельзя размещать новые ответы.

zagrenat

Гуру форума
Регистрация
26 Дек 2006
Сообщения
245
Реакции
68
помогите плиз сделать так чтоб письмо приходило на мыло ...
в пхп нифига не понимаю. :nezn:

сейчас все это в базу записываеться
PHP:
/**
 * Функция отправки письма с заявкой
 *
 */
function send_request(){
global $comm_obj, $config, $page;
$error = "";
$name = trim($_POST['sr_name']);
$phone = trim($_POST['sr_phone']);
$email = trim($_POST['sr_email']);
$mess = trim($_POST['sr_text']);
$cont_email = $comm_obj['contact_email'];
$obj_id = $comm_obj['co_id'];

if ($name=="") $error.="&bull; Вы не указали свое имя<br>";
if (!check_email($email)) $error.="&bull; Адрес электронной почты не указан или указан неверно<br>";
if ($mess=="") $error.="&bull; Вы не ввели текст заявки<br>";
if(!isset($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] != $_POST['keystring']) $error.="&bull; Неверно указан проверочный код<br>";
if ($error==""){

    $subject = "Заявка по коммерческой недвижимости на объект №$obj_id";
    $message = "Имя: $name\n";
    $message .= "Email: $email\n";
    if ($phone!="") $message .= "Телефон: $phone\r\n\r\n";
    $message .= "Категория: Коммерческая недвижимость\n";
    $message .= "Номер объекта: $obj_id\n";
    $message .= "----------------------------------\r\n\r\n";
     if ($comm_obj['co_name']!="") $message .= "Название объекта: ".$comm_obj['co_name']."\r\n\r\n";
    $message .= "$mess\n\n";
    $message .= "----------------------------------\r\n\r\n";
    $message .= "Подробная информация по объекту: ".$config['baseurl']."commercial.php?mod=details&id=$obj_id\r\n";

    $headers = "From: $name <$email>\n";
    $headers .= "Reply-To: $email\n";
    $headers .= "X-Mailer: OCAN Systems mailer\n";
    $headers .= "Content-Type: text/plain; charset=windows-1251";

    if (!mail($cont_email, $subject, $message, $headers))
    $error .= "&bull; Ошибка при отправке письма. Попробуйте еще раз.<br>";
}
else {
    $page->assign('sr_name', $name);
    $page->assign('sr_phone', $phone);
    $page->assign('sr_email', $email);
    $page->assign('sr_text', $mess);
}
return $error;
}
 
Ну они, судя по
PHP:
if (!mail($cont_email, $subject, $message, $headers))
и уходят (если нет ошибки)
 
Поидее должно уходить, тока вот надо бы чтоб функция че-нидь вернула в случае удачи...
 
Nafania, прав. Единственное почему может письмо не приходить на почту потому что его тормозят спам фильтры.
Вот более менее универсальная мультиязычная функция для посылки писем, которая 100% работает и проверена ни на одном проекте!
PHP:
//$obj - обыкновенный массив со всей инфой
function SendEmail(&$obj)
{
	$strCharSet = 'iso-8859-1';
	if ($obj['lang'] == "RU") $strCharSet = 'windows-1251';

	$strTo = '"'.$obj['to_name'].'" <'.$obj['to'].'>';
	$headers = "From: \"{$obj['from_name']}\" <{$obj['from']}>";
	if (isset($obj['date'])) $headers.= "\nDate: ".$obj['date'];
	$headers.= "\nMIME-Version: 1.0";
	$headers.= "\nContent-type: text/plain; charset=$strCharSet";
	$headers.= "\nX-Priority: 3 (Normal)";
	$headers.= "\nX-Mailer: {$obj['mailer']}";

	if (!mail($strTo, $obj['subj'], $obj['msg'], $headers)) {
		Sleep(15);
		if (!mail($strTo, $obj['subj'], $obj['msg'], $headers)) {
			return FALSE;
		}
	}
	return TRUE;
}
 
Достаточно добавить отправителя в белый список в фильтре мыла и не нужно такой сложной функции.
 
Достаточно добавить отправителя в белый список в фильтре мыла и не нужно такой сложной функции.
У тебя на сайте форма, которая, например, отправляет, человеку подтверждение о его заказе,т.е, например, я зашел заказал машину стиральную у тебя, и мне должно придти подтверждение о моем заказе+плюс инфа.
А теперь скажи на многих ли ты сайтах видел предложение добавить email адрес сайта в "белый лист"? Я пока нигде не видел!
ИМХО, бред!
 
уходим в оффтоп, но полазь по инету. очень, очень много мест где просят ручками добаить сайт в белый список. я видел десятки мест. Потому что сервисы предоставляющие мыло иногда считают эти сайты рассылающими спам. Более того, даже предлагают сменить сервис.

Уважающий себя сайт при регистрации даже в письме попросит.

Вам пример? гляньте тут в левой колонке (в самом низу колонки) про маил.ру. А потом уйдите по ссылке в топик.

зы: чтобы вы долго не искали даю вам прямой линк Для просмотра ссылки Войди или Зарегистрируйся
 
  • Заблокирован
  • #8
2 uNknownMark

Только ты забыл указать какие значения твое $obj , какой Mailer и т.д.
 
Сталкивался с этой проблемой - письма отправленые с сайте не доходили до адресата, а те которые доходили доходили с задержкой в несколько десятков минут.

Сработал только один вариант использование class.phpmailer.php
почитать тут:
 
  • Заблокирован
  • #10
Иногда бывают не верно прописаны DNS , и получится что всё работает, php пишет что письма отправлены, но они не доходят на некоторые системы (mail.ru напр.), но на gmail.com приходят.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху