Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
1 / 1 / 0
Регистрация: 27.05.2017
Сообщений: 36

Mail() на локальном сервере

25.07.2017, 17:37. Показов 3857. Ответов 3

Студворк — интернет-сервис помощи студентам
Захотелось потестить функцию mail() на локальном сервере. Я начал гуглить, и почти во всех форумах советовали установить openserver и тому подобное.
Вопрос: Можно ли как нибудь потестить mail() не устанавливая какие-то там Денвер и опенсервер'а? На пк установлен php, mysql, apache, phpmyadmin.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2017, 17:37
Ответы с готовыми решениями:

Запуск на локальном сервере
Здравствуйте, Друзья. Знакомлюсь с HTML. Установил Denwer3 (Ос - Windows7). Создал документ .html <!DOCTYPE HTML PUBLIC...

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

Index.php на локальном сервере
Файл index.php не работает на локальном сервере apache. Подскажите пожалуйста куда копать. if($_SERVER == '/'){ $page =...

3
97 / 47 / 17
Регистрация: 25.04.2017
Сообщений: 471
25.07.2017, 18:06
KennyFox,

Я когда-то пользовался такой функцией для отправки с авторизацией через 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
99
100
101
102
<?php
/*
* отправка почты с авторизацией через SMTP
*/
function smtpmail($mail_to, $subject, $message, $headers='') {
    $config['smtp_username'] = 'Ваша почта Gmail';
    $config['smtp_password'] = 'Ваш пароль от почты Gmail';
    $config['smtp_from'] = 'Ваша почта Gmail';
    $config['smtp_host'] = 'smtp.gmail.com';
    $config['smtp_port'] = '587';
    $config['smtp_debug'] = true;
    $config['smtp_charset'] = 'UTF-8';
 
    $SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n";
    $SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n";
 
    if ($headers) {
        $SEND .= $headers."\r\n\r\n";
    } else {
        $SEND .= "Reply-To: ".$config['smtp_username']."\r\n";
        $SEND .= "MIME-Version: 1.0\r\n";
        $SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n";
        $SEND .= "Content-Transfer-Encoding: 8bit\r\n";
        $SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n";
        $SEND .= "To: $mail_to <$mail_to>\r\n";
        $SEND .= "X-Priority: 3\r\n\r\n";
    }
 
    $SEND .= $message."\r\n";
 
    if(!$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30)) {
        if ($config['smtp_debug']) echo $errno."<br>".$errstr;
        return false;
    }
    if (!server_parse($socket, "220", __LINE__)) return false;
    fputs($socket, "EHLO " . $config['smtp_host'] . "\r\n");
    if (!server_parse($socket, "250", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Не могу отправить EHLO!</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, "AUTH LOGIN\r\n");
    if (!server_parse($socket, "334", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Не могу найти ответ на запрос авторизации!</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, base64_encode($config['smtp_username']) . "\r\n");
    if (!server_parse($socket, "334", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, base64_encode($config['smtp_password']) . "\r\n");
    if (!server_parse($socket, "235", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n");
    if (!server_parse($socket, "250", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Не могу отправить команду MAIL FROM:</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n");
    if (!server_parse($socket, "250", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Не могу отправить команду RCPT TO:</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, "DATA\r\n");
    if (!server_parse($socket, "354", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Не могу отправить команду DATA!</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, $SEND."\r\n.\r\n");
    if (!server_parse($socket, "250", __LINE__)) {
        if ($config['smtp_debug']) echo '<p>Не могу отправить тело письма. Письмо не было отправлено!</p>';
        fclose($socket);
        return false;
    }
    fputs($socket, "QUIT\r\n");
    fclose($socket);
    return TRUE;
}
function server_parse($socket, $response, $line = __LINE__) {
    global $config;
    $server_response="";
    while (substr($server_response, 3, 1) != ' ') {
        if (!($server_response = fgets($socket, 256))) {
            if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response$line";
            return false;
        }
    }
    if (!(substr($server_response, 0, 3) == $response)) {
        if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response$line";
        return false;
    }
    return true;
}
Вместо mail() используем smtpmail()

Данные SMTP можно найти на разных почтовиках, в данном примере используется Gmail.
1
97 / 47 / 17
Регистрация: 25.04.2017
Сообщений: 471
25.07.2017, 18:08
В OS это всё делается проще
Миниатюры
Mail() на локальном сервере  
0
39 / 35 / 23
Регистрация: 10.11.2013
Сообщений: 89
27.07.2017, 08:13
под windows использую sendmail или phpmailer
1. скачиваете архив
2. распаковываете
3. прописываете блоки и пути


php.ini
--
[mail function]
sendmail_path = "C:\папка\sendmail\sendmail.exe -t"



sendmail.ini
--
smtp_server=smtp.*.ru
smtp_port=465
auth_username=*@*.*
auth_password=***
force_sender=*@*.*
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.07.2017, 08:13
Помогаю со студенческими работами здесь

Что с абсолютными адресами на локальном сервере?
У меня установлен локальный сервер (денвер) в папке Z:/denwer/www. При использовании dirname(__FILE__) в require (пишу...

Различная дата на локальном сервере и хостинге
Здравствуйте. При регистрации в поле бд date с типом datetime добавляется текущее время. Перемести сайт на хостинг, так там в бд пишется...

Установить куки на домен и сабдомены. На сервере работает, на локальном нет
Добрый день! Как установить куки на домен и сабдомены? Пробовал setcookie(&quot;c_nickname&quot;, 'MCB', time() +...

Ошибка Warning: include(./auth.php): на локальном web-сервере
Здравствуйте пользователи cuberforum. Возникла такая проблема подключил значит я к примеру файл auth.php на сайте который куплен на...

При создании сайта на локальном сервере, на странице браузера, вместо кириллицы - кракозябры
Создаю свой первый сайт. В phpMyAdmin в БД во вкладке &quot;Структура&quot; в колонке &quot;Сравнение&quot; напротив introtext и fulltext значится -...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru