Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
17 / 15 / 2
Регистрация: 12.11.2013
Сообщений: 228

Отправка формы через smtp / PHPMailer

10.02.2020, 20:18. Показов 859. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени, уважаемые знатоки!

Подскажите пожалуйста, как сделать отправку форм через smtp. Есть такой код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
function selfURL()
{
    if (!isset($_SERVER['REQUEST_URI'])) $suri = $_SERVER['PHP_SELF'];
    else $suri = $_SERVER['REQUEST_URI'];
    $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
    $sp = strtolower($_SERVER["SERVER_PROTOCOL"]);
    $pr = substr($sp, 0, strpos($sp, "/")) . $s;
    $pt = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":" . $_SERVER["SERVER_PORT"]);
    return $pr . "://" . $_SERVER['SERVER_NAME'] . $pt;
}
 
$Nzakaz = rand(1, 99999);
$name = $_POST['name'];
$phone = $_POST['phone'];
$mail = $_POST['mail'];
$city = $_POST['city'];
$time = $_POST['time'];
$typeP = $_POST['typeP'];
$fam = $_POST['fam'];
$otch = $_POST['otch'];
$typD = $_POST['typD'];
$ser = $_POST['ser'];
$numb = $_POST['numb'];
$dataV = $_POST['dataV'];
$kevV = $_POST['kevV'];
$cat = $_POST['cat'];
$regZ = $_POST['regZ'];
$VIN = $_POST['VIN'];
$numKuz = $_POST['numKuz'];
$numRam = $_POST['numRam'];
$marka = $_POST['marka'];
$model = $_POST['model'];
$godV = $_POST['godV'];
$massaB = $_POST['massaB'];
$maxMas = $_POST['maxMas'];
$prob = $_POST['prob'];
$typeTop = $_POST['typeTop'];
$typeTor = $_POST['typeTor'];
$modelShin = $_POST['modelShin'];
$taxi = $_POST['taxi'];
$url = selfURL();
 
$title = 'ПОСТУПИЛА ЗАЯВКА';
$text = ' <!DOCTYPE html> 
                    <html> 
                        <head> 
                            <title>ПОСТУПИЛА ЗАЯВКА С САЙТА</title> 
                        </head> 
                        <body> 
                            <p>ПОСТУПИЛА ЗАЯВКА С САЙТА </p>';
$text = $text . "<p><b>Заявке присвоен номер</b>: " . $Nzakaz . " </p>";
if ($name != '') $text = $text . "<p><b>Имя</b>: " . $name . " </p>";
if ($phone != '') $text = $text . "<p><b>Телефон</b>: " . $phone . " </p>";
if ($time != '') $text = $text . "<p><b>Время</b>: " . $time . " </p>";
if ($mail != '') $text = $text . "<p><b>Email</b>: " . $mail . " </p>";
if ($city != '') $text = $text . "<p><b>Город</b>: " . $city . " </p>";
if ($typeP != '') $text = $text . "<p><b>Тип пользователя</b>: " . $typeP . " </p>";
if ($fam != '') $text = $text . "<p><b>Фамилия</b>: " . $fam . " </p>";
if ($otch != '') $text = $text . "<p><b>Отчество</b>: " . $otch . " </p>";
if ($typD != '') $text = $text . "<p><b>Тип документа</b>: " . $typD . " </p>";
if ($ser != '') $text = $text . "<p><b>Серия</b>: " . $ser . " </p>";
if ($numb != '') $text = $text . "<p><b>Номер</b>: " . $numb . " </p>";
if ($dataV != '') $text = $text . "<p><b>Дата выдачи</b>: " . $dataV . " </p>";
if ($kevV != '') $text = $text . "<p><b>Кем выдано</b>: " . $kevV . " </p>";
if ($cat != '') $text = $text . "<p><b>Категория</b>: " . $cat . " </p>";
if ($regZ != '') $text = $text . "<p><b>Регистрационный знак</b>: " . $regZ . " </p>";
if ($VIN != '') $text = $text . "<p><b>VIN</b>: " . $VIN . " </p>";
if ($numKuz != '') $text = $text . "<p><b>Номер кузова</b>: " . $numKuz . " </p>";
if ($numRam != '') $text = $text . "<p><b>Номер рамы (шасси)</b>: " . $numRam . " </p>";
if ($marka != '') $text = $text . "<p><b>Марка</b>: " . $marka . " </p>";
if ($model != '') $text = $text . "<p><b>Модель</b>: " . $model . " </p>";
if ($godV != '') $text = $text . "<p><b>Год выпуска</b>: " . $godV . " </p>";
if ($massaB != '') $text = $text . "<p><b>Масса без нагрузки</b>: " . $massaB . " </p>";
if ($maxMas != '') $text = $text . "<p><b>Максимальная масса</b>: " . $maxMas . " </p>";
if ($prob != '') $text = $text . "<p><b>Пробег</b>: " . $prob . " </p>";
if ($typeTop != '') $text = $text . "<p><b>Тип топлива</b>: " . $typeTop . " </p>";
if ($typeTor != '') $text = $text . "<p><b>Тип тормозной системы</b>: " . $typeTor . " </p>";
if ($modelShin != '') $text = $text . "<p><b>Модель шин</b>: " . $modelShin . " </p>";
if ($taxi != '') $text = $text . "<p><b>Такси</b>: " . $taxi . " </p>";
if ($url != '') $text = $text . "<p><b>Страница от куда заявка</b>: " . $url . " </p>";
$text = $text . "
                            <p><b>IP клиента:</b> " . $_SERVER["REMOTE_ADDR"] . "</p> 
                        </body> 
                    </html>";
 
// $to - кому отправляем
$to = 'test@gmail';
 
// $from - от кого
$header = "Content-type: text/html; charset=utf-8";
$header .= "From:test@gmail";
$header .= "Subject: $title";
$header .= "Content-type: text/html; charset=utf-8";
// функция, которая отправляет наше письмо.
mail($to, $title, $text, $header);
 
?>
На всех хостингах работает на ура, а вот на GoDaddy работать вообще отказывается. И звонил и писал им, они говорят это не наше дело, прогер пусть разбирается. Вот я и думаю, если попробовать через smtp может будет прогресс?

Также шаманил с PHPMailer'ом, но толи мозгов не хватает, то ли лыжи, сами знаете. Можете что то посоветовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2020, 20:18
Ответы с готовыми решениями:

Отправка почты через PHPmailer (поле от кого)
Здравствуйте. В ходе написания сайта столкнулся с серьезными проблемами при настройке обратной связи (умные люди говорят, так у всех)....

Отправка писем через smtp
&lt;?php ini_set( 'html_errors', false ); $_POST = 'mymail@yandex.ru'; - почта, куда придет письмо $_POST = 'test'; $_POST = 'hello'; ...

Отправка вложений через SMTP
&lt;?php $config = $_POST; //Смените на имя своего почтового ящика. $config = 465; // Порт работы. Не меняйте, если не уверены. $config...

4
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
10.02.2020, 20:21
Цитата Сообщение от Dimka Mixov Посмотреть сообщение
если попробовать через smtp
PHP для функции mail использует настройки, указанные в его (PHP) конфиге, причем по умолчанию - это именно сброс в локальный smtp-сервер. вы его настраивали?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
10.02.2020, 20:25
https://www.php.net/manual/ru/function.mail.php
Функция открывает и закрывает соединение с SMTP-сервером для каждого письма
Цитата Сообщение от Dimka Mixov Посмотреть сообщение
PHP
1
2
// функция, которая отправляет наше письмо.
mail($to, $title, $text, $header);
Которая отправляет через локальный сервер. Если он есть и настроен. Сам PHP не умеет письма слать.


Цитата Сообщение от Dimka Mixov Посмотреть сообщение
Можете что то посоветовать?
Тебе нужен mail сервер, через который слать. Неужели в комплекте с хостингом нет SMTP?
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
10.02.2020, 21:46
1) непонятно, зачем две одинаковые строки 91 и 94. вместо 91 строки вставьте
PHP
1
$headers  = 'MIME-Version: 1.0' . "\r\n";
2) зачем два раза отправляете $title - вторым параметром в mail, и еще в $header?
3) чтобы $title в нужной кодировке отображался надо 44 строку так переписать
PHP
1
2
$title = 'ПОСТУПИЛА ЗАЯВКА';
$title= '=?utf-8?B?' . base64_encode($title) . '?=';
4) допишите во всех строчках $header знаки переноса строки . "\r\n";
1
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,883
10.02.2020, 22:06
Код не работает, потому что содержит множество ошибок.

SMTP-отправку средствами PHP делать крайне не рекомендую, особенно не в фоновом скрипте.

Добавлено через 4 минуты
Цитата Сообщение от vinikon Посмотреть сообщение
4) допишите во всех строчках $header знаки переноса строки . "\r\n";
В последней не обязательно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2020, 22:06
Помогаю со студенческими работами здесь

Отправка на почту через SMTP mail
Не могу найти как решить проблему в коде. Простая форма автоматической отправки сообщения людям на почту с моей почты. Отправляю с...

Массовая отправка сообщений с вложением через SMTP сервер
Всем привет. Ребят, подскажите пожалуйста, в чем ошибка? Есть самописные форма и обработчик формы для массовой отправки почты с вложением....

Отправка писем через SMTP используя функцию SMTPMAIL
Добрый день! В интернете есть некая функция которая великолепно работает у многих и раньше её я использовал. Но мне она сейчас...

Отправка запросов через формы
Здравствуйте программисты. Я создаю сервис для онлайн тестирования знаний по определенному сериалу. Суть в том что пользователь должен...

Отправка файлов через PhpMailer
Здравствуйте. Никак не могу понять как реализовать отправку файла через PhpMailer. Надо, чтобы в php создавался файл с данными и потом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru