Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [PHP] Cкрипт для формирования / отправки письма 
V
    Опции темы
programming4
Дата 9.6.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 10.3.2006

Репутация: нет
Всего: нет



Помогите найти скрипт...

Есть бесплатный хостинг с поддержкой PHP5, также есть html-страничка, на которой любому пользователю предлагается заполнить некую форму (логин, e-mail и пароль с подтверждением), также на странице есть кнопка "Отправить". Мне нужен такой php-скрипт, способный при нажатии этой кнопки сформировать письмо и отправить все, что набрано в полях, на мой e-mail
HELP!!!    
PM MAIL   Вверх
Alex1984
Дата 16.8.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: нет
Всего: 2



помогите, таже проблемма, нужно чтобы форма отправлялась на имейл, но уже заполненая. В php полный ноль. 
Форма на html во вложенном файле

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  briff.rar 1,73 Kb
PM MAIL WWW ICQ   Вверх
Annihilator
Дата 16.8.2007, 19:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: 1
Всего: 3



Код

if (isset($_REQUEST['send']))  // Если нажата кнопка "Сделать рассылку"
    {
        $sel=mysql_select_db($base);
        if ($sel) 
        {
            $author=$_REQUEST['author']; // Получаем поле "От кого"
            $theme=$_REQUEST['theme']; // Получаем поле "Тема"
            $message=$_REQUEST['message']; // Получаем поле "Текст письма"
            echo "выбрана база  {$base} <BR>";
            $sql=mysql_query("SELECT mail FROM $table ");
            $cnt=mysql_num_rows($sql); // Определяем число строк и записываем в $cnt    
            for ($data=array();$row=mysql_fetch_row($sql);$data[]=$row);
            echo "<TABLE border='2'>";
            for ($i=0,$j=0;$i<=$cnt-1;$i++) 
            {
                mail(
                    $data[$i][$j],
                    $theme,
                    $message,
                    "From: {$_REQUEST['author']}");
                echo "Пользователю ".$data[$i][$j]." письмо отправлено<BR>";
            }
        }
        else echo "не удается выбрать базу";
    }

простенькая такая, переделывать времени пока нет. Кому что не понятно пишите icq 238136457
отвечу с радостьюsmile

Это сообщение отредактировал(а) Annihilator - 16.8.2007, 19:11


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Mal Hack
Дата 19.8.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Annihilator, выкиньте весь свой код, а точнее бублик по вопросу безопасности, на помойку.

Alex1984, самый простой вариант:
Создаем файл mail.php, в action формы вписываем mail.php, у кнопки ставим name="btnSubmit".
mail.php:
Код
<?php

if(isset($_POST['btnSubmit']))
{
$text = <<<EOF
Юридическое имя компании: {$_POST['name']};<br />
Торговая марка: {$_POST['favorite']};<br />
Сайт: {$_POST['homepage']};<br />
////////////////////////////////// ************** ////////////////////////////

EOF;
mail("mymail.com", "Бриф", $text); // второй параметр - тема письма, первый - адрес получателя

}

?>

Вместо ////////////////////////////////// ************** //////////////////////////// вставляешь html с тем, как у тебя должно выглядеть письма. $_POST['name'] - переменная из формы, где индекс массима - имя поля. {} - показывают, что ее надо вставить в текст сообщения, который мы формируем. Остальное - голый html, думаю с ним проблем не возникнет.

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

PS: хостинг, там где твой сайт лежит, должен поддердивать PHP скрипты. Народ.Ру не прокатит.
PM ICQ   Вверх
jonie
Дата 19.8.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: нет
Всего: 118



вот вам класс для отправки по SMTP включая с авторизацией..
Цитата

Библиотека предназначена для удобного составления и организации надежной отправки писем с аттачами или без.
В отличие от PHPMailer-а, умеет:
1) правильно кодировать заголовки (поддерживаются плейсхолдеры при их составлении)
2) отправлять письма по SMTP с использованием AUTH CRAM-MD5

Класс Letter
Составляет письмо с заголовками, сообщением и аттачами.
Лепит из всех этих составляющих тело письма.

Envelope (наследует Letter)
API к наиболее часто используемым заголовкам: from, to, subject, reply-to, cc, bcc
Самостоятельно определяет всех получателей, интеллектуально составляет тело письма на основании родительских методов.
Есть инструмент для создания закодированных заголовков. Поддерживает плейсхолдеры.

SMTP_Socket
Инструмент для коннекта к SMTP-серверу и выполнения на нем команд.
Анализирует коды ответа сервера в каждой команде и сопоставляет с указанным набором.
Может сохранять лог протокола

Mailman
"Фабрика"
Утилита для составления писем, построения их в очередь и отправки указанным способом.
Постоянно держит наготове объект-письмо-конверт, куда можно пихать сообщения, заголовки, аттачи.
Можно текущее письмо поместить в очередь и при этом создать новое.
Можно всю очередь писем отправить в 1 соединение с SMTP-сервером. Это происходит так:
1) создает соединение, пытается пройти аутентификацию, если указаны логин+пароль
1.1) аутентификация происходит в порядке "AUTH CRAM-MD5", "AUTH LOGIN"
2) пытается отправить каждое письмо из очереди. При этом отправленные удаляются из очереди
3) возвращает количество отправленных писем (очередь неотправленных при этом остается)

Пример отправки 1 простейшего письма
Код

<?php
$m=new Mailman();
$m->letter->add_to('[email protected]');
$m->letter->set_from('[email protected]');
$m->letter->set_subject('Превед');
$m->letter->set_message('Идет Медвед по лесу...');
if ($m->send_via_smtp('smtp.mail.ru', 'preved', 'medved'))
    echo 'ok';
else
    echo 'Not ok';
?>


Пример отправки письма с кучей заголовков и 2 аттачами
Код

<?php
// создается очередь и 1 письмо в кодировке UTF-8
$queue = new Mailman();

$queue->letter->add_to('[email protected]');
$queue->letter->add_to('[email protected]', 'Имя получателя');
// так же работают методы add_cc, add_bcc
$queue->letter->set_from('[email protected]', 'Ваше имя');
$queue->letter->set_reply_to('[email protected]', 'Еще какое-нить имя');
// простое текстовое сообщение
$queue->letter->set_message('бу-бу-бу');
/* // а можно и HTML-код
$html_code='...';
$queue->letter->set_message($html_code, text/html, 'windows-1251');
*/
// можно приаттачить файл, можно содержимое
$queue->letter->attach($path_to_file);
$queue->letter->attach($file_contents, 'application/rtf', '1.rtf');
// или добавить какой-нибудь заголовок
$queue->letter->add_header($queue->letter->base64_placeholders(
    'X-Mailer: #?#', 'Типа почтовый клиент.'));
// можно просто сформировать и получить тело письма
$ltr=$queue->letter->fetch();

// а так письма можно попытаться отправить в любой момент
// последнее письмо не нужно отправлять в очередь
$queue->send_via_smtp('an.smtp.host');
?>



Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  mailto.rar 6,37 Kb


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Alex1984
Дата 19.8.2007, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: нет
Всего: 2



Спасибо, завтра буду пробовать
PM MAIL WWW ICQ   Вверх
Alex1984
Дата 20.8.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: нет
Всего: 2



jonie Сорри, что то я совсем не вьезжаю, тяжко мне понять, не видя резултата.  smile  smile  smile 

Кто-то может сделать за меня или по аське разобрать со мной? 312032985
PM MAIL WWW ICQ   Вверх
Annihilator
Дата 20.8.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: 1
Всего: 3



Mal Hack, я про безопасность ничего и не говорил, это просто склелет,который не надо выкидывать, а нужно доделать


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Alex1984
Дата 21.8.2007, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: нет
Всего: 2



решилось


M
Guedda
Не забываем помечать вопрос "решенным"


Это сообщение отредактировал(а) Guedda - 22.8.2007, 09:29
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.