Как отправить данные на почту?

Y
На сайте с 06.01.2014
Offline
55
2012

Есть форма, которая принимает имя пользователя (name="name") и его телефон (name="phone").

Как сделать так, что бы при нажатии кнопки "отправить" эти данные отправлялись на мою почту? Подскажите, пожалуйста, самый простой код без лишних заморочек.

LEOnidUKG
На сайте с 25.11.2006
Online
1591
#1

Вот прям в интернете НЕТ ни одной простой формы?

https://www.google.ru/search?client=opera&q=PHP+как+отправить+форму+на+почту&sourceid=opera&ie=UTF-8&oe=UTF-8

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
bruder
На сайте с 03.02.2015
Offline
199
#2

url.php


<?php

$to = "email@email.com";
$subject = "Сообщение с сайта";

if(isset($_POST["submit"]))
{
if(!preg_match("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",trim($_POST["email"])))
{
$message = "<div id=\"message\" class=\"error\">Указанный email не соответствует формату!</div>";
}
else
{
mail($to, iconv ('utf-8', 'windows-1251',$subject), $_POST["theme"]."\n\n".iconv ('utf-8', 'windows-1251',$_POST["comment"]).iconv ('utf-8', 'windows-1251',$_POST["name"]).".\nEmail: ".$_POST["email"]);
$message = "<div id=\"message\" class=\"success\">Сообщение успешно отправлено!</div>";
}
}

?>


<form class="contact" method="post" action="">

<div>

<div>

<span class="label">Ваш email:</span>

<input class="input" name="email" type="text" required>

</div>

<div>

<span class="label">Сообщение:</span>

<textarea rows="10" cols="45"class="input" name="comment" required></textarea>

</div>

<div>

<span class="label"></span>

<input class="btn" name="submit" type="submit" value="Отправить">

<?=$message?>

</div>

</form>
SeVlad
На сайте с 03.11.2008
Offline
1463
#3
bruder:
mail($to, iconv ('utf-8', 'windows-1251',$subject), $_POST["theme"]."\n\n".iconv ('utf-8', 'windows-1251',$_POST["comment"]).iconv ('utf-8', 'windows-1251',$_POST["name"]).".\nEmail: ".$_POST["email"]);

Уже за это надо руки отбивать.

Хотя на большинстве правильно настроенных серверов эта дыра не отправится. :)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***
bruder
На сайте с 03.02.2015
Offline
199
#4

SeVlad, Какая дыра, если код отправляет форму лишь на вбитый в него емейл?

E
На сайте с 01.10.2017
Offline
34
#5

bruder, существование "реальных" POST-параметров не проверяется.

И с кодированием символов у вас большие проблемы. Полностью отсутствует кодирование по стандарту. Также в тексте сообщения (третий параметр mail) вы часть данных преобразуете в Windows-кодировку, а часть нет. Получается смешение кодировок в одном тексте.

---------- Добавлено 10.04.2020 в 09:58 ----------

В наше время нормально использовать такую отправку без какой-либо надежной защиты от автоспама невозможно.

Также ничего не сделано и не сказано, чтобы используемая вами почтовая служба не воспринимала ваше же письмо, как почтовый спам.

S
На сайте с 30.09.2016
Offline
469
#6
bruder:
SeVlad, Какая дыра, если код отправляет форму лишь на вбитый в него емейл?

Потенциальная дыра там в необработанном $_POST. Надо отфильтровать небезопасные символы. Хотя это и просто часть сообщения, но мусору там делать нечего.

Но скорее всего, не отправится, а если отправится, то с большой вероятностью уйдёт в спам или не прочитается, потому как не хватает заголовков/параметров.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
LEOnidUKG
На сайте с 25.11.2006
Online
1591
#7
Sitealert:
Потенциальная дыра там в необработанном $_POST. Надо отфильтровать небезопасные символы. Хотя это и просто часть сообщения, но мусору там делать нечего.

Там же регуляркой проверяется всё. Хотя она уже не нужна т.к. давно есть filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)

S
На сайте с 30.09.2016
Offline
469
#8
LEOnidUKG:
Там же регуляркой проверяется всё.

Нет, ничего не проверяется, кроме мэйла.

Хотя мало кто этим заморачивается.

suffix
На сайте с 26.08.2010
Offline
278
#9

Пусть опять напишут что я предлагаю из пушки по воробьям но таки правильнее через msmtp на MTA (допустим exim).

А нормально настроенный exim всё что надо проверит сам.

Клуб любителей хрюш (https://www.babai.ru)
saanvi
На сайте с 01.04.2015
Offline
108
#10

<FORM NAME="form" METHOD="post" ACTION="mailto:your@adress.ru?subject=Hello world" ENCTYPE="text/plain">

...

</FORM>

:)

Здоровый пофигизм (http://saanvi.ru)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий