Эротические торты 18+
СОДЕРЖАНИЕ
 
ГОСТЕВАЯ
 
ГЕНЕРАТОР
 
ССЫЛКИ
 

третий пример - подкрепляем файлы и изображения - отправка почты на php

А вот это уже не простой, но очень интересный пример! В нем мы не просто отправляем письмо, в нем мы отправляем приложенный файл! Но и это еще не все, помимо отправки простого файла, мы еще и прикрепляем к письму картинку! Думаю стоит обратить на это внимание, когда передо мной появилась такая задача, я потратил немало времени на ее решение. Ах да, забыл! Еще и письмо мы отформатируем с помощью html - т.е. мы получаем мощный инструмент, с помощью которого мы сможем генерировать любые необходимые нам письма. Для обработки писем я использовал исходники, найденные на просторах интернета. Первоисточник я сейчас не смогу найти, поэтому ссылка ведет на файл, который лежит на моем сайте, но, честно признаюсь, этот класс писал не я! Собственно, вот ссылка: class.phpmailer.zip - не забудьте разархивировать ;-) На хостинге от PeterHost для корректной обработки картинок необходимо в папку со скриптом положить файл .htaccess следующего содержания:
<IfModule mod_charset.c>
CharsetRecodeMultipartForms off
</IfModule>
Итак, переходим к скрипту:
<?php
function show_form()
{
?>
<form action="" method=post enctype="multipart/form-data">
<div align="center">
              <br />Имя*<br />
              <input type="text" name="name" size="40">
              <br />Контактный телефон<br />
              <input type="text" name="tel" size="40">
              <br />Контактный email*<br />
              <input type="text" name="email" size="40">
              <br />Teма<br />
              <input type="text" name="title" size="40">
              <br />Сообщение*<br />
              <textarea rows="10" name="mess" cols="30"></textarea>
              <br />Файл<br />
              <input name="attachfile" type="file" size="28">
              <br />Изображение<br />
              <input name="attachimage" type="file" size="28">
              <br /><br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
* Помечены поля, которые необходимо заполнить
<?
}

function
complete_mail() {
        
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
        
$_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
        
$_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
        
$_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
        
$_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
        
$_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
        
// если не заполнено поле "Имя" - показываем ошибку 0
        
if (empty($_POST['name']))
            
output_err(0);
        
// если неправильно заполнено поле email - показываем ошибку 1
        
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
            
output_err(1);
        
// если не заполнено поле "Сообщение" - показываем ошибку 2
        
if(empty($_POST['mess']))
            
output_err(2);
        
// обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-)
        
$mess = '
<b>Имя отправителя:</b>'
.$_POST['name'].'<br />
<b>Контактный телефон:</b>'
.$_POST['tel'].'<br />
<b>Контактный email:</b>'
.$_POST['email'].'<br />
'
.$_POST['mess'];

        
// подключаем файл класса для отправки почты
        
require 'class.phpmailer.php';

        
$mail = new PHPMailer();
        
$mail->From = 'test@test.ru';      // от кого
        
$mail->FromName = 'www.php-mail.ru';   // от кого
        
$mail->AddAddress('to@yandex.ru', 'Имя'); // кому - адрес, Имя
        
$mail->IsHTML(true);        // выставляем формат письма HTML
        
$mail->Subject = $_POST['title'];  // тема письма

        // если был файл, то прикрепляем его к письму
        
if(isset($_FILES['attachfile'])) {
                 if(
$_FILES['attachfile']['error'] == 0){
                    
$mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
                 }
        }
        
// если было изображение, то прикрепляем его в виде картинки к телу письма.
        
if(isset($_FILES['attachimage'])) {
                 if(
$_FILES['attachimage']['error'] == 0){
                    if (!
$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type']))
                         die (
$mail->ErrorInfo);
                    
$mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) ';
                 }
        }
        
$mail->Body = $mess;

        
// отправляем наше письмо
        
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
        echo
'Спасибо! Ваше письмо отправлено.';
}

function
output_err($num)
{
    
$err[0] = 'ОШИБКА! Не введено имя.';
    
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
    
$err[2] = 'ОШИБКА! Не введено сообщение.';
    echo
'<p>'.$err[$num].'</p>';
    
show_form();
    exit();
}

if (!empty(
$_POST['submit'])) complete_mail();
else
show_form();
?>
« второй пример, посложнее, но с проверкой данных генератор форм обратной связи на php »


Ниже Вы можете пофлудить - можете спросить, обругать, похвалить и т.д.

Имя

Сообщение


20.11.2013   Хсю

Спасибо, помогло



09.10.2013   Мария

Здравствуйте! Ребята, помогите пожалуйста с подключением: можно подробнее описать что и куда вставить, написать прописать и т п ? ато я смотрю в книгу.....(((
<br>Спасибо


12.10.2013   ХЗ

А что нужно подключить?



20.09.2013   Req

что-то тут такая же фигня с кодировкой, как в предыдущих примерах.
до этого проблема решалась заменой функции отправки на mb_send_mail(...), которая присылала то же самое, но в правильно кодировке.
а тут письмо отправляется через $mail->Send(), совершенно непонятно как тут исправлять кодировку....


20.09.2013   Александр

----------------------------------------------------------------------------------------------------------------------------------------------------------------
Используя класс class.phpmailer.php, для смены кодировки достаточно в обработчике после строки $mail = new PHPMailer(); добавить строку с указанием кодировки, например так: $mail->CharSet = "UTF-8";
----------------------------------------------------------------------------------------------------------------------------------------------------------------



20.09.2013   Req

А, понял, там
$mess .=
т.е. картинки прикрепляются. Спасибо)



20.09.2013   Req

не понял механизм прикрепления файлов к сообщению! как я понял сообщение комплектуется в переменной $mess, типа Имя отправителя: ... и тд, но зачем присоединять её же саму еще раз?
...
'.$_POST['mess']; - вот эта строка
почему вы назвали две переменные одинаково?
и где там посмотреть указанный формат для загрузки картинок?



24.07.2013   Максим

как сделать ограничение на размер файла в 20мб?



23.07.2013   Adil muellim

третий пример не работает, такое вылетает Mailer Error: Language string failed to load: instantiate
пожалйуста помогите



15.07.2013   Сергей

Спасибо организатору этого обсуждения ! Разобрался ! Почитал коменты и решил вопрос через AddBCC.
<br>&lt;br&gt;Мне было достаточно что бы отправить письмо благодарности с вложенным им же файлом отправителю. В благодарность отвечаю на нескольк раз повторявшийся здесь вопрос, но не никто на него не ответил.
<br>&lt;br&gt;Многие хостеры отрезают возможность отправлять письма с сервера. Для этого нужно обоснованно попросить хостера что бы включили такую возможность. Некоторые включают такую услугу за отдельную плату, а некоторые вообще не реагируют на такие письма. Завел бесплатный хостинг вот здесь api.hostinger.ru/redir/377719 и проблемы такие отпали. Все бесплатно ! В том числе и организация рассылок до 100 писем в течении 30 минут.



15.07.2013   Сергей

Перечитал ответы попробовал применить и переписал строку if(!empty($_POST[email][3]))
все равно на другой е-майл не отправляется
в итоге выдает

X-Sendmail-Cmdline: sendmail.pl -t -i
To: sergeb32@gmail.com , $_POST[email], $row[email]
Subject: =?windows-1251?B?z/Du8fLu6SDx6vDo7/Ig8eDp8uAg8SDs5e3+?=
То есть первый е-майл пишет правильно а вот второй который прописан

$mail->AddAddress('sergeb32@gmail.com, $_POST[email], $row[email]');

из базы не берет. Что делать ?



15.07.2013   Сергей

Вроде все в норме, файл прикрепляется и отправляется, но ... Отправляется только на один адрес, второй е-майл как не пробоваал отправить не получается хоть $email $row[email] - пишет $email но сам е майл из базы не берет, даже сессию пробоварл применить все равно пишет$email



07.06.2013   Виталий

Здравствуйте, такая проблема. пытаюсь прикрепить pdf файл, но он на почту не приходит, так же как и картинка!

$mail = new PHPMailer();
$mail->From = 'qq@qq.by';
$mail->FromName = 'www.qq.by';
$mail->AddAddress("q.qq@tut.by", $_row['name']);
$mail->IsHTML(true);
$mail->AddAttachment("/mod_warranty/temp_pdf/".$row['id'].".pdf");
$mail->AddEmbeddedImage("/mod_warranty/html/template_pdf/qq.png", "warranty", "qq.png", "base64", ".png");
$message = '<h1>Вас приветствует компания ООО "qq"</h1><img src="cid:warranty" border="0">';
$mail->Body = $message;
if (!$mail->Send()) die ('Mailer Error:'.$mail->ErrorInfo);
echo "Отправлено!";

в чем может быть проблема?



25.02.2013   вадик

установил. пишет:: Warning: require(class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in /var/www/vhosts/u4956145.plsk.regruhosting.ru/httpdocs/monolit-stone.net/request-an-estimate/index.php on line 323 - что необходимо делать


25.02.2013   Александр

Либо class.phpmailer.php не залили, либо путь к нему неправильно указали



11.12.2012   Игорь

Мне не помогает $mail->CharSet = "UTF-8";
на mail.ru тогда всё из формы крокозябрами приходит. Может ещё где-то нужно менять кодировку? А необходимо, чтоб файлы с русскими именами приходили, поскольку контингент женщины отправляют файлы в Ворде по русски.



09.11.2012   Артур

Ваш скрипт, у меня, выдал ошибку \&quot;
<br>Parse error: syntax error, unexpected $end in /home/uganskbu/public_html/mailf/index.php on line 1\&quot;



20.10.2012   Эдуард

Приветствую коллеги, помогите решить проблему: Нужно чтобы можно было прикрепить не только один фаил, а много если указан &lt;input class=\&quot;file\&quot; name=\&quot;attachfile\&quot; type=\&quot;file\&quot; size=\&quot;36\&quot; multiple=\&quot;multiple\&quot; &gt; а то прикрепляется только последний фаил. чтобы одним инпутом можно было отослать несколько фаилов если их суммарный вес не привышает 20 мб .
<br>Можно как то пройтись циклом forich по массиву $_FILE[\'attachfile\'][] и прикрепить все фалы к письму, находящиеся в массиве \&quot;attachfile\&quot;



27.09.2012   007

как на счет авторизации?



09.07.2012   петр

Здравствуйте!после отправления письма появляется:
<br>
<br>Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\\home\\localhost\\www\\888\\class.phpmailer.php on line 1091
<br>
<br>Warning: fread() [function.fread]: Length parameter must be greater than 0 in Z:\\home\\localhost\\www\\888\\class.phpmailer.php on line 1092
<br>
<br>Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\\home\\localhost\\www\\888\\class.phpmailer.php on line 1095
<br>Спасибо! Ваше письмо отправлено.
<br>
<br>Если у кого то возникала такая ситуация помогите решить проблему....


11.12.2012   Игорь

Проблема в устаревшей функции magic_quotes_runtime. Вот официальное сообщение php.net/manual/en/migration53.deprecated.php и тут www.php.su/php/?migration53. Решение в замене этой функции на ini_set(«magic_quotes_runtime», 0); и ini_set(«magic_quotes_runtime», $magic_quotes); Удачи.



24.06.2012   Инам

Здравствуйте! Мне нужен скрипт на подобии этого, только по возможности чуть больше. Чтоб там можно было выбирать категории, пункты, местоположение и т.д. 10 фотографий, капча и главное чтоб после отправки сообщения отправитель получал рандомный код, к примеру (Ваше сообщение отправлено, код сообщения: 7367263). Это нужно для сайта объявлений. Я могу и заплатить, просто узнать сколько это будет стоить. Заранее спасибо!


01.08.2012   Павел

Добрый день. Могу взяться за написание кода. Пишите на электронку pavelbog@mail.ru



19.06.2012   привет всем

а как и куда ставить адресс что бы файлы присылались на свой адресс



12.06.2012   Vladimir

Здравствуйте!
Подскажите, пожалуйста, как сделать форму, чтобы можно было выбрать из нескольких выпадающих списков параметры (которые должны отправиться в письме), потом написать комментарий, а потом добавить файл. И если необходимо добавить несколько файлов, а потом всё это отправить. И на сколько реально, чтобы генерировался порядковый номер и отправителю с сайта приходило "ответное" письмо с заданным текстом и с порядковым номером (в письмо мне так же должен быть добавлен этот номер).
Спасибо!



24.05.2012   Николас

Здравствуйте!
Форма работала долгое время на одном хостинге, после переноса письма приходят, но без прикреплённого файла, как можно проверить в чём ошибка?


24.05.2012   Николас

Видимо у меня была старая версия скрипта, проверил приведёный выше код - файл прикрепляется. Будем искать проблему в коде



08.05.2012   Leonid

Опишу проблему точнее:
index.php на Wordpress через функцию include включает в сайдбар другой php файл (contactform.php).
contactform.php выполняет свою работу, но после этого всё то, что стояло после include('contactform.php'); в index.php просто отказывается грузиться. Кто знает в чем может быть проблема? Могу дать ссыль..

В файле contactform.php есть функция exit(); - видимо в ней дело. И как её обойти, чтобы продолжить выполнение index.php? Когда меняешь exit на return - форма прекращает номальную работу.



08.05.2012   Leonid

Проблема такого рода, что когда вставляешь эту форму в шаблон вордпресс через php функцию include, то после отправки страница формы, выводится все что было в коде до формы и сама форма, а далее код шаблона отказывается грузится (другие сайдбары, футер не грузятся), как будто что-то в коде формы прекращает вывод прочего кода. Какие могут быть причины/решения?



07.05.2012   Олег

Нужно сделать рассылку на несколько адресов:

- первый адрес должен быть обязательным, а второй браться из формы на сайте.

Писал - $mail->AddAddress('my@gmail.com','.$_POST['input_name'][3].');
и так:
$mail->AddAddress('my@gmail.com','$empty_input[3]');
- выдает ошибку.
Спасибо


07.05.2012   Александр

// первый адрес
$mail->AddAddress('my@gmail.com','my@gmail.com');

// второй если заполнено поле в форме
if(!empty($_POST['input_name'][3]))
$mail->AddAddress($_POST['input_name'][3], $_POST['input_name'][3]);


08.05.2012   Для Александр

Спасибо огромное - работает прекрасно



04.05.2012   Элла

спасибо, единственный рабочий пример у вас



01.05.2012   olea

Спасибо вам огромное за ооочень отличную и просто написанную статью!!!
<br>Здоровья вам и успехов!



19.04.2012   zed212

приветствую!!! у меня вопрос а как можно в таких скриптах сделать форму от кого ($mail->From = $mail->From = 'test@test.ru';) не одно а множество то есть чтоб письмо приходило не от одного почтового ящика а от множество почтовых ящиков кто знает как это можно сделать??? и второй вопрос возможно ли сейчас отсылать на почту звуковые видео или флеш файлы но не в прикреплён нам виде??? кто знает отпишитесь можно на маю почту ynii@list.ru



23.03.2012   Мишаня

Во-первых, огромное спасибо автору за титаническую работу.
Во-вторых, у меня вопрос: Что можно сделать, чтобы после отправки формы, при обновлении страницы, письмо повторно НЕ отправлялась? При этом хотелось бы, чтобы сообщение о доставке письма также появлялось.
Спасибо.

Вот как выглядит, у меня на сайте, доработанный код автора:


Есть форма ввода данных с аттачем в ПХП-файле:
......<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" id="formID" class="formular" name="formular">
<div><input type="text" size="50" name="name" id="name" placeholder="Имя:" class="validate[required,length[0,100]] text-input" /></div>
<div><input type="email" size="50" name="email" id="email" placeholder="@" class="validate[required,custom[email]] text-input" /></div>
<div><input type="subject" size="50" name="subject" id="subject" placeholder="Тема:" class="validate[required,length[0,40]] text-input" /></div>
<input type="text" id="fileName" class="file_input_textbox" placeholder="Файла нет" readonly />
<div class="file_input_div">
<input type="button" value="Прикрепить" class="file_input_button" />
<input type="file" name="file" class="file_input_hidden" onchange="javascript: document.getElementById('fileName').value = this.value" />
</div>
<div><textarea rows="5" cols="50" name="mess" id="mess" placeholder="Сообщение:" class="validate[required,length[6,300]]"></textarea></div>
<input type="submit" class="button1" value="Отправить" name="submit" />
<input type="reset" class="button2" name="button2" id="button2" value="Отменить" />
</form> ......


и в этом же файле( вверху ) скрипт отправки письма:

<?php

if(isset($_POST['submit'])) { /***---Если форма отправлена---***/
function send_mail()
{ $name = htmlspecialchars($_POST['name']); }
{ $subject = htmlspecialchars($_POST['subject']); }
{ $email = htmlspecialchars($_POST['email']); }
$style = 'font-family:Verdana, Arial, Helvetica, sans-serif; font-size : 13px; color:#474747;padding:6px;border-bottom:1px solid #cccccc;' ;
$style2 = 'font-family:Verdana, Arial, Helvetica, sans-serif; font-size : 13px; color:#474747;padding:10px;border-bottom:1px solid #cccccc;' ;
$message =
"<table cellspacing=0 cellpadding=0 border=0 >
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Имя пославшего: </b> </td> <td valign=top style='{$style};'>" .$_POST['name']. "</td></tr>
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Электронный адрес: </b> </td> <td valign=top style='{$style};'>" .$_POST['email']. "</td></tr>
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Тема: </b> </td> <td valign=top style='{$style};'>" .$_POST['subject']. "</td></tr>
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Сообщение: </b> </td> <td valign=top style='{$style2};width:600px; line-height: 27px;'>" .$_POST['mess']. "</td></tr>
</table><br>";
include "class.phpmailer.php";// подключаем класс
if(empty($_POST['name'])||empty($_POST['email'])||empty($_POST['subject']))/***--------Do Validations---------***/
{ $errors .= "\n Name, Email, Subject are required fields. "; }
if(IsInjected($visitor_email))
{ $errors .= "\n Bad email value!"; }
//send the email
if(empty($errors))
{
$mail = new PHPMailer();
$mail->From = $_POST['email'];
$mail->FromName = $_POST['name'];
$mail->AddAddress('deeand7@gmail.com');
$mail->IsHTML(true);
$mail->Subject = $_POST['subject']." | Письмо пришло с сайта БЛА-БЛА.РУ";
if(isset($_FILES['file']))
{ if($_FILES['file']['error'] == 0)
{ $mail->AddAttachment($_FILES['file']['tmp_name'],$_FILES['file']['name']); }
}
$mail->Body = $message;
if (!@$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
{
echo "<script language='JavaScript'>alert('Спасибо ".$_POST['name']." за использование контактной формы! Ваш email был отправлен и я свяжусь с Вами в кратчайшие сроки.')</script>";
}
if (!empty($_POST['submit'])) send_mail();
}}

function IsInjected($str){
$injections = array('(\n+)','(\r+)','(\t+)','(%0A+)','(%0D+)','(%08+)','(%09+)');
$inject = join('|', $injections); $inject = "/$inject/i";
if(preg_match($inject,$str)){ return true; }
else{ return false; } }
?>......


27.03.2012   Михаил

Спасибо за формы. Подскажите, пожалуйста, как мне прописать кодировку $headers = "Content-type: text/plain; charset = utf-8";
чтобы приходили письма по-русски, а не кубики


01.04.2012   Александр

Используя класс class.phpmailer.php, для смены кодировки достаточно в обработчике после строки $mail = new PHPMailer(); добавить строку с указанием кодировки, например так: $mail->CharSet = "UTF-8";


06.02.2013   Илья

Есть проблема.
<br>Для отправки письма, надо минимально заполнить поля Имя, маил, Тема. Только тогда письмо отправляется. Если заполнить меньше, и нажать \&quot;Отправить\&quot;, то записи в форме стираются, а надо выводить ошибку.
<br>Ошибку выводит только при неправильном вводе е-маила.



26.01.2012   XD

otli4ni kod ! molodec Alexandr



15.01.2012   lol

нахеа клысс для отправки имейла?? О_о
Делать нечего!?



08.12.2011   madbizarre

А какие настройки должны быть на сервере? Почему два одинаковых сайта, расположенных на разнах хостах работают по разному, вернее на одном работает отправка, на втором пишет что ошибок нету, письмо успешно отправлено, но письмо на е-майл не приходит!


13.01.2012   biv

может в спам уходит?
я так тоже долго не понимал в чем дело, пока в спам не глянул и нашел 10 штук своих отправленных. почта на гмэйл была.



02.12.2011   Анна

Возможно ли как-нибудь удалить строчку exit(); и при этом чтобы форма корректно работала?



02.12.2011   Анна

Здравствуйте!
Помогите, плиз!
Суть в том что если не все обязательные поля заполнить, то скрипт как и положено выдает ошибку, НО при этом не отображается ничего что ниже скрипта и из-за этого весь сайт перекашивается.
Если вот в этой части удалить exit(); то при НЕ заполненных обязательных полях сайт не перекашивается, как и положено выдает ошибку, НО при этом ниже ошибки пишет что "ваше письмо отослано" и отсылает письмо (хотя по идее не должен) :

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

Заранее спасибо!


18.12.2011   Влад

Анна, выход был найден следующим образом - помещать пхп код в самом низу страницы (вот прямо перед закрывающимся телом)

Кнопки пусть будут там где им положено быть, а обработать-то их можно и вконце страницы =)



15.11.2011   Rigaard

класс
хороший класс :)
сенкс!
Работает на ура с первого раза) Довольно интересный у вас стиль кодинга))



11.11.2011   Андрей

Капча не выдает никакой код. Под формой выходит \&quot;подформа\&quot; (такое слово, только что в голову пришло!) в виде комментариев, которые вообще то видимо не должны показываться. В комментах нужно бы более подробно расписать, что как и куда. Для того, кто это не делал, это ж темный лес!



29.10.2011   Марина

Подключила этот пример себе на страницу,вот что выскочило:
Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\portal\www\template\forall\class.phpmailer.php on line 1091

Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\portal\www\template\forall\class.phpmailer.php on line 1095

Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\portal\www\template\forall\class.phpmailer.php on line 1091

Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\home\portal\www\template\forall\class.phpmailer.php on line 1095
Спасибо! Вfше письмо отправлено.
А на самом деле письмо так и не пришло.Посмотрела,оно находится в заглушке z:\tmp\!sendmail
и оно очень длинное!Абракодабра.
На сайте не нашла ответ на данное сообщение,хотя оно уже повторялось.
Помогите,пожалуйста,кто знает,как исправить ошибку эту?
И еще вопрос-как убрать прикрепление картинки к письму?
Спасибе всем,кто ответит.



26.10.2011   Господин Хозяин

И почему я , смотря на это , чувствую себя бараном ? :(
<br>Пытаюсь выучить этот язык , но ничего не выходит , сплошные огорчения .


29.07.2013   Сергей

Все потому что верно будет вот так <br /> ;-)



27.09.2011   мамонт

вроде все сделал правильно. но после нажатия на кнопку отправит выходит вот это на чистой странице. что я делаю не так
<?
}

function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 30);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST['name']))
output_err(0);
// если неправильно заполнено поле email - показываем ошибку 1
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
// если не заполнено поле "Сообщение" - показываем ошибку 2
if(empty($_POST['mess']))
output_err(2);
// обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-)
$mess = '
<b>Имя отправителя:</b>'.$_POST['name'].'<br />
<b>Контактный телефон:</b>'.$_POST['tel'].'<br />
<b>Контактный email:</b>'.$_POST['email'].'<br />
'.$_POST['mess'];

// подключаем файл класса для отправки почты
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->From = 'test@test.ru'; // от кого
$mail->FromName = 'www.php-mail.ru'; // от кого
$mail->AddAddress('to@yandex.ru', 'Имя'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = $_POST['title']; // тема письма

// если был файл, то прикрепляем его к письму
if(isset($_FILES['attachfile'])) {
if($_FILES['attachfile']['error'] == 0){
$mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
}
}
// если было изображение, то прикрепляем его в виде картинки к телу письма.
if(isset($_FILES['attachimage'])) {
if($_FILES['attachimage']['error'] == 0){
if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type']))
die ($mail->ErrorInfo);
$mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) ';
}
}
$mail->Body = $mess;

// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>


17.10.2011   key-bo

в коде короткий тег <? вместо <?php
либо включи поддержку их
либо замени на <?php



22.09.2011   CергейП

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


23.09.2011   Александр

про кодировки не Вам написано. Почитайте ответ под своим большим сообщением от 18.09.2011
www.php-mail.ru/?gstid=2280



22.09.2011   Таня-баня

отправляю вложения -- все отлично работает, но файлы с русскими наименованиями приходят с перекодированными названиями -- внутренность вложений и тело самого письма нормальные.
Например, имя файла Анкета - Физкультурно-оздоровительный комплекс.xls перекодировало в тХГЙСКЭРСПМН-НГДНПНБХРЕКЭМШИ ЙНЛОКЕЙЯ &#9562;юРКЮМР&#9577; (2).xls

Подскажите, где и что надо подстроить?


22.09.2011   Александр

Попробуйте с кодировками поиграться:
Используя класс class.phpmailer.php, для смены кодировки достаточно в обработчике после строки $mail = new PHPMailer(); добавить строку с указанием кодировки, например так: $mail->CharSet = "UTF-8";



19.09.2011   Samuele

Доброго времени суток. Возникли такие проблемы:
1. Письмо приходит, но без прикрепленных файлов и изображений.
2. IP адрес не показывает. Пробовал все, что советовали в комментариях.

ЗЫ: скрипт на страницу подключаю через iframe, может-ли быть из-за этого ? ^_^



18.09.2011   СергейП

Как в место окна для ввода сообщения:
<input type="text" name="input_name[6]2" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][6])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
вставить такое: <textarea <?=$addstyle?> cols='46' rows='6' size='500' name='msg'></textarea>
или такое же (растягивающееся) как на этом сайте в которое вписывается сообщение?

Вот мой код:
<?
session_start ();
error_reporting(0);
function show_form()
{
$_SESSION['code'] = rand(1000, 9999);
?>

<form action="" method=post enctype="multipart/form-data">
<div align="center">
<table cellspacing="1" cellpadding="2" bgcolor="#3E7EA0" width="314">
<tr bgcolor="#4488AD">
<td height="30">
<p align="center">&nbsp;<b><span lang="ru"><font face="Verdana" style="font-size: 11pt" color="#FFFFFF">Заказ
на сайте</font><font face="Verdana" color="#FFFFFF" size="2">: </font></span></b>
<font face="Verdana" style="font-size: 9pt" color="#CAF4FF"><span lang="en-us">
www.</span></font><font face="Verdana" style="font-size: 9pt" color="#B9F1FF"><span lang="ru">часы
24 часа.рф</span></font><tr bgcolor="#FFFFFF">
<td>
<p style="margin-top: 3px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp; Ваши Ф<span lang="ru">.</span>И<span lang="ru">.</span>О<b><span lang="ru">.</span> </b>
</font>
<font face="Verdana" size="1">(без сокращений<span lang="ru">)</span></font><span lang="ru"><font face="Verdana" style="font-size: 9pt"><b>:</b><font color="#FF0000">*</font> </font></p>
<p style="margin-top: 0; margin-bottom: 1px" align="center"><font face="Verdana">
<input type="text" name="input_name[0]0" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</font>
</font>
<p style="margin-top: 2px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp;
Ваш E-mail:<font color="#FF0000">*</font></font>
</font></p>
<p style="margin-top: 4px; margin-bottom: 1px" align="center"><font face="Verdana">
<input type="text" name="input_name[1]1" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"></font><font size="2" face="Verdana">
</font>
<p style="margin-top: 2px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp;
Ваш № телефона:<font color="#FF0000">*</font></font>
</font></p>
<p style="margin-top: 4px; margin-bottom: 1px" align="center"><font face="Verdana">
<input type="text" name="input_name[2]2" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][2])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</font>
<input type="hidden" name="check[]" value="1"><font size="2"></b>
</font></font>
<p style="margin-top: 2px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp;
Индекс и Область:<font color="#FF0000">*</font>
</font></p>
<p style="margin-top: 4px; margin-bottom: 1px" align="center"><font face="Verdana">
<input type="text" name="input_name[3]2" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][3])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</font>
<input type="hidden" name="check[]" value="1"><font size="2"></b>
</font></font>
<p style="margin-top: 2px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp;
Город и Улица:<font color="#FF0000">*</font>
</font></p>
<p style="margin-top: 4px; margin-bottom: 1px" align="center"><font face="Verdana">
<input type="text" name="input_name[4]2" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][4])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</font>
<input type="hidden" name="check[]" value="1"><font size="2"></b>
</font></font>
<p style="margin-top: 2px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp;

Дом<b> </b>
</font><font face="Verdana" style="font-size: 8pt">(корпус)</font><font face="Verdana" style="font-size: 9pt"><b>
и </b>квартира №:<font color="#FF0000">*</font>
</font></p>
<p style="margin-top: 2px; margin-bottom: 1px" align="center"><font face="Verdana">
<input type="text" name="input_name[5]2" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][5])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</font>
<input type="hidden" name="check[]" value="1"><font size="2"></b>
</font></font>
<p style="margin-top: 2px; margin-bottom: 2px" align="left">
<font face="Verdana" style="font-size: 9pt">&nbsp; Опишите Ваш заказ</font><b><font face="Verdana" size="2">
</font></b>
<font face="Verdana" size="1">(что именно, цвет, кол-во)</font><font face="Verdana" style="font-size: 8pt">:</font><font color="#FF0000" style="font-size: 9pt" face="Verdana">*</font><font face="Verdana" size="2">
</font></p>
<p style="margin-top: 2px; margin-bottom: 2px" align="center"><font face="Verdana">
<input type="text" name="input_name[6]2" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][6])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</font>
<input type="hidden" name="check[]" value="1"><font size="2"></b>
</font></font>
<p style="margin-top: 2px; margin-bottom: 1px">
<span lang="ru"><font face="Verdana" style="font-size: 8pt">Вы можете
отправить нам </font></span><font face="Verdana" style="font-size: 8pt">
файл</font><font face="Verdana" style="font-size: 9pt">
</font></p>
<p style="margin-top: 2px; margin-bottom: 2px"><font face="Verdana"><input type="file" name="file_name[]" size="26" style="border: #4D9DC6 1px solid; background-color: #fff;"><font size="2">
</b>
</font></font>
<p style="margin-top: 0; margin-bottom: 0"><font face="Verdana">
<font style="font-size: 9pt" color="#FF0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font><span lang="ru"><span style="font-size: 9pt">Введите Код</span><font color="#FF0000"><span style="font-size: 9pt">:</span><font size="2">
</font>
<input type="text" id="code" name="code" size="15" maxlength="4"></font><font size="2" color="#FF0000">
<img align="absmiddle" src="captcha.php"></font></font><tr>
<td bgcolor="#4488AD">
<table width="100%">
<tr><td align="left">
<font color="#FFFFFF">
<input type="submit" value="Отправить" style="background-color:#4В9ВС6;border: 1px solid #000;; float:right" name="submit"> </font>
<font color="#FFFFFF" face="Verdana" style="font-size: 8pt">Заполните
поля со знаком</font><font color="#FF0000"> *</font></td></tr>
</table>
</td>
</tr>
</table>
</div>
</form>
<?
}
function complete_mail() {

if (empty($_POST['code']) or empty($_SESSION['code'])) {
echo '<br><b>Вы не указали код подтверждения</b>';
$sendemail = 'No';
} elseif ($_POST['code'] != $_SESSION['code']) {
echo '<br><b>Код подтверждения не совпадает</b>';
$sendemail = 'No';
}

$empty_input[0] = 'от Ф.И.О. (полностью):';
$empty_input[1] = 'E-mail:';
$empty_input[2] = '№ тел.:';
$empty_input[3] = 'Индекс, Область:';
$empty_input[4] = 'Город, улица:';
$empty_input[5] = 'Дом, корпус, квартира:';
$empty_input[6] = 'Заказ:';
for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
$sendemail = 'No';
echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';

}
}
}
if($sendemail == 'No') show_form();
$mess = '';
$mess .= '<b>от ФИО: </b>'.$_POST['input_name'][0].'<br />';
$mess .= '<b>Е-mail: </b>'.$_POST['input_name'][1].'<br />';
$mess .= '<b>№ тел.: </b>'.$_POST['input_name'][2].'<br />';
$mess .= '<b>Индекс, Область: </b>'.$_POST['input_name'][3].'<br />';
$mess .= '<b>Город и улица: </b>'.$_POST['input_name'][4].'<br />';
$mess .= '<b>Дом, корпус, квартира: </b>'.$_POST['input_name'][5].'<br />';
$mess .= '<b>Заказ: </b>'.$_POST['input_name'][6].'<br />';
// подключаем файл класса для отправки почты
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->FromName = 'Ваше Ф.И.О.'; // от кого имя
$mail->From = 'Email'; // от кого email
$mail->AddAddress('staors@ya.ru', 'staors@ya.ru'); // получатель письма
$mail->FromName = 'Ваш № телефона'; // телефон
$mail->FromName = 'Индекс и Область'; // индекс и Область
$mail->FromName = 'Город и улица'; // Город, улица
$mail->FromName = 'Дом (корпус) квартира'; // Дом (корпус) квартира
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = 'Форма для заказа'; // тема письма
$mail->Body = $mess;

// если был файл, то прикрепляем его к письму
if(isset($_FILES['file_name'])) {
if($_FILES['file_name']['error'][0] == 0){
$mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
}
}


if($sendemail != 'No'){
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo 'Спасибо! Ваш заказ отправлен.';
}
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>


22.09.2011   Александр

Если это не шутка, замените

<input type="text" name="input_name[6]" size="58" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][6])), 0, 500);?>" style="border: #4D9DC6 1px solid; background-color: #fff;">

на

<textarea cols='46' rows='6' size='500' name='input_name[6]'><?=substr(htmlspecialchars(trim($_POST['input_name'][6])), 0, 500);?></textarea>



15.09.2011   Евгений

Почему-то вылетает ошибка "Mailer Error: Language string failed to load: instantiate"
В свяви с чем это может быть?


18.09.2011   serg

Похоже что это проблема на хостинге с sendmail



08.09.2011   Владимир novcc

После отправки сообщение вылезла ошибка:
Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:homenovcc.locwwwformclass.phpmailer.php on line 1091

Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:homenovcc.locwwwformclass.phpmailer.php on line 1095
Спасибо! Ваше письмо отправлено.

Помогите исправить. Заранее спасибо!



28.07.2011   Дмитрий

При загрузке файлов от 7 Мб скрипт возвращает пустую форму и ничего никуда не отправляет. Что делать?


18.12.2011   Влад (evs-vladislav@ya.ru

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

Удалось решить?



24.06.2011   Вадим

Такая проблема: письмо отправляется в utf-8, само письмо доходит нормально, а вот файлы с русс. именем приходят крокозябликами. Помогите кто чем. Заранее спасибо!


24.06.2011   alkin

замени в файле class.phpmailer.php
var $CharSet = "windows-1251";
на
var $CharSet = "utf8";



20.06.2011   Алексей

А возможно в этой форме сделать много <input name="attachimage" type="file" size="28"> - с одинаковым именем attachimage - и прогнать в цикле - прикрепить каждый инпут?


20.06.2011   Вариант

с совсем-совсем одинаковым именем?
<input name="attachimage[]" type="file" size="28">
Такой вариант не прокатит?


20.06.2011   Алексей

спасибо, я так и сделал!



29.03.2011   Паша

Подскажите!
Сделал инклюд формы в другой пхп документ.
Если все введено и письмо отправлено - ок, но если возникает ошибка, то хтмл страница обрезается после формы.
Проблема -

function output_err($num)
{
$err[0] = 'ERRPR! Please write the name.';
$err[1] = 'ERROR! Please write correct e-mail.';
$err[2] = 'ERROR! Date is not selected.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit(); - вот тут
}

Как можно решить?


29.03.2011   Александр

Вариантов миллион.
Сгенерите любую форму в генераторе, посмотрите, как это обходится там, и сделайте также.



11.03.2011   alex

Доброго время суток!
Подскажите люди добрые, как сделать так, что бы при отправке письма (после нажатия submit) на экране не происходило ничего?
Ну тоесть что бы письмо отправлялось, но не выводилось никаких сообщений, мол письмо успешно отправлено, что бы страница с формой отправки не обновлялась и т.д.



18.02.2011   Ваня

Здравствуйте!
<br>У меня проблема с кодировкой. Крокозяблы на кириллицу показывает. Никак не могу решить проблему. Пробовал уже и UTB-8 и Windows-1254. Через мета вписывал и через httaccess не получается никак решить проблему. Вставляю в вордпресс, если это важно.
<br>Помогите, пожалуйста.


12.04.2011   Олег

Используя класс class.phpmailer.php, для смены кодировки достаточно в обработчике после строки $mail = new PHPMailer(); добавить строку с указанием кодировки, например так: $mail-&gt;CharSet = \&quot;UTF-8\&quot;;



20.01.2011   Жирнов Максим

Почему-то не срабатывает HTML в теле письма, а так же не прикрепляются файлики... В чём может быть дело?



10.01.2011   Ирина

Хочу получить результат, но не получается


11.01.2011   Александр

Жду мамонта на Красной площади. Никак не встретимся.


15.09.2011   Евгений

Попробуйте делать это без презерватива.



23.12.2010   Юрий

Возможно ли в этом классе уведомление о прочтении письма?



17.12.2010   Игорь

отличный скрипт, спасибо большое ;)



07.12.2010   Александр

Привет!
Классный код. А можно прикрутить swf файл к телу письма, также как и картинку?

Заранее спасибо



30.11.2010   Сергей

Большое спасибо за генератор



26.11.2010   Ella

Spasibo za kod! ochen horoshi!
Vopros: esli odno iz polei ne pravilno zapolnenno i forma vidaet oshibky, to vse polya sterayutsya i nado zapolnyat zanovo.
Kak sdelat 4to bi informacia s polei be steralas?
Zaranee spasibo.


30.11.2010   Александр

<input type="text" name="name" size="40" value="<?=htmlspecialchars($_POST['name']);?>">



22.11.2010   serg

Mailer Error: Language string failed to load: instantiate
<br>а какую языковую строку он грузит и как избавиться от ошибки???
<br>спасибо !!!



22.11.2010   serg

Mailer Error: Could not instantiate mail function.
не могу понять почему не работает почтовая функция???
Заранее спасибо кто подскажет!!!



08.11.2010   Роман

Mailer Error: Language string failed to load: instantiate

я не могу разобратся с этой ошибкой!



28.10.2010   siber

после попытки отправить письмо с вложением появляется ошибка:Language string failed to load: provide_address
<br>
<br>Насколько понял, это ошибка отсутствия адресата. хотя адрес для доставки добавляю. Подскажите, как бороться с этой ошибкой?



28.10.2010   никола

возможно ли такое? с mootools заливать файлы в папку,а phpmailer отправляет данные формы с этими файлами?как это осуществить?подскажите плз



20.10.2010   ghost

скрипт работает и работает отлично! Но у каждого есть свои прихоти. Каким образом нужно дополнить скрипт, чтобы при ошибке оставались поля заполненными?
Не очень уж хочется переписывать такой скрипт, уж больно он нравится. Может можно попроще?
Спасибо...



10.10.2010   Коляныч

Люди добрые помогите! есть у меня скрипт
<?
/********************************************/
/*Welcome to PHP Mailer source-code!*/
/*The PHP Mailer and its functions, contexture are copyrighted by s1ayer [www.spg.arbse.net]*/
/*Current file: index.php*/
/*Optimized for PHP 4.3.6, Apache 1.3.27*/
/********************************************/
if (@function_exists("mail"))
{
include "config.php";
?>

<?
if (isset($_GET['send']) and isset($_POST['sform']))
{
$to = trim($_POST['to']);
if ($to != "")
{
$from = $_POST['from'];
$theme = $_POST['theme'];
$content = $_POST['content'];
$to = ereg_replace (",([^ ]{1})", ", \\1", $to);
$theme = $theme==""?"No subject":$theme;
if (@$_POST['cyr_encode'] == "yes")
$theme = "=?koi8-r?B?".base64_encode(convert_cyr_string($theme, "w","k"))."?=";

if (@$_POST['html'] == "yes")
$ctype = "html";
else
$ctype = "plane";

$header = "Content-Type: text/$ctype; charset=\"$charset\" \r\n";
$header .= "From: $from \r\n";
$header .= "X-Mailer: PHP-Mailer by s1ayer[www.spg.arbse.net] \r\n";

if (@$_POST['hide_addr'] == "no")
{
$error = 0;
$to_array = explode (", ", $to);
for ($i=0; $i<count($to_array); $i++)
{
if ($to_array == "")
continue;

if (!@mail($to_array[$i], $theme, $content, $header))
$error++;

}
if ($error == 0)
print "Отправка писем завершена<br><br>";
else
print "Невозможно отправить письмо!<br><br>";

}
else
{
if (@mail($to, $theme, $content, $header))
print "Письмо отправлено<br><br>";
else
print "Невозможно отправить письмо!<br><br>";
}

}
else
print "Вы не заполнили поле 'Кому' !<br><br>";

}
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
function hide_button (){
document.getElementById('button').style.display = "none";
document.getElementById('processing').style.display = "block";
}
//-->
</SCRIPT>
<form action="?send" method="post">
<table>
<tr><td>Получатели:</td><td><textarea name='to' rows='20' cols='19'><?=$default_to?></textarea></td></tr>
<tr><td>От кого:</td><td><input type="text" name="from" value="<?=$default_from?>" size=40></td></tr>
<tr><td>Тема:</td><td><input type="text" name="theme" size=40></td></tr>
<tr><td valign="top">Содержание:</td><td><textarea name="content" rows=9 cols=50><?=$default_sign?></textarea></td></tr>
<tr><td colspan=2>
Опции:<br>
<ul>
<li>отправить в HTML ? <input type="checkbox" name="html" value="yes"></li>
<li>кодировать заголовок письма в koi8 ? <input type="checkbox" name="cyr_encode" value="yes" checked></li>
</ul>
</td>
</tr>
<tr><td colspan=2 align="right"><input type="hidden" name="sform" value="yes"><input type="submit" value="Отправить" id=button style="display: block" onClick="hide_button()"><button id="processing" style="display: none" disabled>Пожалуйста, ждите...</button></td></tr>
</table>
</form>

<?
}
else
print "Извините, сервер не поддерживает функции <tt>mail ()</tt>";
?>
как сделать чтобы почтовые адреса брались из текстового файла.
Помогите я ничё не понял.



07.10.2010   миха

У меня после отправки сообщение вылезла ошибка
<br>Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\\home\\dazaev.ru\\www\\forms\\class.phpmailer.php on line 1091
<br>
<br>Deprecated: Function set_magic_quotes_runtime() is deprecated in Z:\\home\\dazaev.ru\\www\\forms\\class.phpmailer.php on line 1095
<br>Спасибо! Ваше письмо отправлено. С чем это связано?



06.10.2010   Антон

Скажите пожалуйста как прикрепить html страницу с одной картинкой которая лежит на этом же хостинге? И чтоб картинка была в этой странице... Заранее большое спасибо!



03.09.2010   Роман

Спасибо за скрипт. Есть вопрос. Необходимо отправлять несколько файлов, причем их количество за ранее не известно. Возможно ли сделать так, чтоб скрипт после выбора загружаемого файла открывал дополнительное окно для ввода еще одного файла? Я уже убился искать варианты. Есть конечно решение загрузки файлов на сервер через Ajax, а потом отсылки их и в связи с этим тогда еще вопрос- оеально ли сделать так, чтоб скрипт при формировании письма просто забирал все файлы из определенной директории? Т.е. присоединять не конкретно один файл , а все?



01.09.2010   dimttra

<?
if(substr($_FILES['attachfile']['name'], -3) != 'rtf' AND substr($_FILES['attachfile']['name'], -3) != 'doc')
echo 'Файл не подходит';
else {
// выполняем отправку

Если у меня возможность прикрепит 5 файлов, это мне после каждой формы писать или достаточно одного раза перед или после форм?


01.09.2010   Александр

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


02.09.2010   dimttra

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


02.09.2010   Александр

вставляйте там, где идет
if(isset($_FILES['attachfile'])) {


02.09.2010   dimttra

"для каждого файла имя свое задать, например attachfile1"

......<input type="file" name="file_name[attachfile1]" size="50" style="border: #000 1px solid; background-color: #fff;">
..................
if(isset($_FILES['attachfile1'])) {
if($_FILES['attachfile1']['error'][0] == 0){
$mail->AddAttachment($_FILES['attachfile1']['tmp_name'][0], $_FILES['attachfile1']['name'][0]); }
}
.........
я правильно всё понял и сделал?


02.09.2010   Александр

Либо
......<input type="file" name="attachfile1" size="50" style="border: #000 1px solid; background-color: #fff;">
..................
if(isset($_FILES['attachfile1'])) {
if($_FILES['attachfile1']['error'][0] == 0){
$mail->AddAttachment($_FILES['attachfile1']['tmp_name'][0], $_FILES['attachfile1']['name'][0]); }
}
.........

Либо
......<input type="file" name="file_name[attachfile1]" size="50" style="border: #000 1px solid; background-color: #fff;">
..................
if(isset($_FILES['file_name']['attachfile1'])) {
if($_FILES['file_name']['attachfile1']['error'][0] == 0){
$mail->AddAttachment($_FILES['file_name']['attachfile1']['tmp_name'][0], $_FILES['file_name']['attachfile1']['name'][0]); }
}


Первый вариант без массива наверное проще для восприятия



09.08.2010   Татьяна

У меня высвечивает Mailer Error: Language string failed to load: instantiate после отправки формы... Можете подсказать в чем может быть проблема?


10.08.2010   Татьяна

Поняла. Прочла предыдущие ответы. та же незадача с Mailer Error: Could not instantiate mail function. Может, с Apache что-нибудь?



27.07.2010   Janik

prinoshu izvineniya, na tyajelo razborchiviy text s nizu, u menya net russkoy klaviaturi.



27.07.2010   Janik

Privet,
<br>mne nujna pomosh\' s moim skriptom...
<br>nachyalos\' vse s imya otpravitelya, otpravlennie pis\'ma prihodili s imenem profider\'a.
<br>reshal delo dvumya sposobami: cherez \&quot;$headers\&quot; , i ili \&quot;$from\&quot;. V oboih sluchyaeh ne jelaemoe imya menyalos\' na jelaemoe, no!.. Pis\'metso prihvativaet teper\' s soboy svoyu kopiyu vse s tem je imenem po umolchyaniyu.
<br>
<br>Mne obsalyutno nekkomu kompetentnomu obratit\'sya, mojet zdes\' u kogo poyavyatsya idei?
<br>icq 279670977



14.07.2010   Дмитрий Машков

Спасибо чувак, phpmailer это было последнее что решил испробовать иначе бы уже не знал что делать. у меня вложение отправлялось с моего сервака, а с другого не отправлялось( пипец промучался уже столько говнокода перепробовал))



02.07.2010   Денис

когда все запоняеш и отпровляеш переходит на белый экран и письмо не приходит!
а когда не заполниш где * пишет как положено ошибка!



23.06.2010   Сергей

}
убрал
function: complete_mail
заменил на: send_mail,
и ура. Большое спасибо



12.06.2010   Georg

Большое спасибо!!!!!!!
<br>Все очень хорошо работает с первого раза!
<br>А если у кого-то не работает, тогда проблемы точно не с кодом ;)



06.06.2010   NFL

Регулярка неправильная :)

Используйте filter_var с FILTER_VALIDATE_EMAIL



27.05.2010   ММС

Молодэц! )

Побольше бы рабочих, хороших вариантов...



07.05.2010   Аакар

Спасибо огромное



05.05.2010   Мимокрокодил

Спасибо друг, бум разбираться. :)



26.04.2010   Тимур

КРУТО!!!! Так долго искал и наконец нашел и все клева работает!!! Спасибо, огромное!!!!!!!



21.04.2010   Евгений

кто может помощь советом с третьим примером.буду благодарен стукните в мою асю 448-155-189. очень нужна помощь...



15.04.2010   Vitalii

Спасибо за форму все работает отлично, но есть пару вопросов:
Почему я не могу отослать файл, либо картинку более 3 мб? Приходит письмо без вложении, и как устранить эту проблему. Файлы 500 кб доходят без проблем.
Спасибо.



14.04.2010   Евгений

Сделал все как написано,но дело в том что письма которые я отправляю до меня не приходят. Может где то нужно прописать свои данные



23.03.2010   Сергей

уважаемый dimttra

Вы создали страницу с расширением .html , чтобы работал скрипт страница должна быть .php
+ пробуйте на бесплатном хостинге поддерживающим php



22.03.2010   dimttra

ВСЕМ ПРИВЕТ.
<br>после добавления скрипта на страницу сайта ниже кнопки \&quot;Отправить\&quot; появляется вот это:
<br>
<br>* Помечены поля, которые необходимо заполнить From = \'test@test.ru\'; // от кого $mail-&gt;FromName = \'www.php-mail.ru\'; // от кого $mail-&gt;AddAddress(\'to@yandex.ru\', \'Имя\'); // кому - адрес, Имя $mail-&gt;IsHTML(true); // выставляем формат письма HTML $mail-&gt;Subject = $_POST[\'title\']; // тема письма // если был файл, то прикрепляем его к письму if(isset($_FILES[\'attachfile\'])) { if($_FILES[\'attachfile\'][\'error\'] == 0){ $mail-&gt;AddAttachment($_FILES[\'attachfile\'][\'tmp_name\'], $_FILES[\'attachfile\'][\'name\']); } } // если было изображение, то прикрепляем его в виде картинки к телу письма. if(isset($_FILES[\'attachimage\'])) { if($_FILES[\'attachimage\'][\'error\'] == 0){ if (!$mail-&gt;AddEmbeddedImage($_FILES[\'attachimage\'][\'tmp_name\'], \'my-attach\', \'image.gif\', \'base64\', $_FILES[\'attachimage\'][\'type\'])) die ($mail-&gt;ErrorInfo); $mess .= \'А вот и наша картинка:
<br>
<br>я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) \'; } } $mail-&gt;Body = $mess; // отправляем наше письмо if (!$mail-&gt;Send()) die (\'Mailer Error: \'.$mail-&gt;ErrorInfo); echo \'Спасибо! Ваше письмо отправлено.\'; } function output_err($num) { $err[0] = \'ОШИБКА! Не введено имя.\'; $err[1] = \'ОШИБКА! Неверно введен e-mail.\'; $err[2] = \'ОШИБКА! Не введено сообщение.\'; echo \'
<br>\'.$err[$num].\'
<br>
<br>\'; show_form(); exit(); } if (!empty($_POST[\'submit\'])) complete_mail(); else show_form(); ?&gt;
<br>
<br>посмотреть в реале можно здесь: kinris.narod.ru/vopros.html#begin
<br>Что делать?????

менять хостинг. Без php не работает.


14.03.2010   Александр ^_^

Здравствуйте. Подскажите пожалуйста, как заставить эту форму работать? Я сгенерировал её, заполнил все нужные мне поля, выставил все условия и тд и тп., но я не знаю что мне теперь делать с этими тремя файлами ( mail.php + 2 файла class.phpmailer'a), закинул их на фтп сайта, но нигде не появилась данная форма :(.
Попробовал скопировать текст из mail.php и вставить в html код странички, появилась форма, но ниже появилась какая то писанина лишняя, и ни чего не работает...
Буду очень признателен если вы мне подскажете как интегрировать эту саму форму в сайт...



10.03.2010   Александр

нельзя ли сделать чтобы после отправки данных формы сама форма не исчезала, меняясь на надпись "Спасибо! Ваше письмо отправлено" а всё осталось как было введено, без перехода на другие страницы.
замена строки
echo 'Спасибо! Ваше письмо отправлено.';
на
echo 'Спасибо! Ваше письмо отправлено.';
show_form();
не дает результата


27.05.2010   ММС

if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
else{
echo 'Спасибо! Ваше письмо отправлено.';
show_form();
}


Просто ты забыл поставить скобки, поэтому у тебя на условии обрабатывался только вывод "echo"



06.03.2010   Юрий

Что делать если у одного провайдера работает а у другого нет?



08.02.2010   Максим

Ух ты, работает с первого раза, класс, спасибо



07.02.2010   Дмитрий

Подскажите как отделить форму от php кода,
сайт на хостинге без php c формой, с неё данные отправляются на файл php находящийся на хостинге с php - это у меня реализовано , но понадобилась передача файлов


21.02.2010   Алексей

А зачем отделять?
Просто копируете форму в код вашей страницы, а потом вставляете весь код в скрипт:

<?php
function show_form()
{
?>
//Сюда
<form action="" method=post enctype="multipart/form-data">
<div align="center">
<br />Имя*<br />
<input type="text" name="name" size="40">
<br />Контактный телефон<br />
<input type="text" name="tel" size="40">
<br />Контактный email*<br />
<input type="text" name="email" size="40">
<br />Teма<br />
<input type="text" name="title" size="40">
<br />Сообщение*<br />
<textarea rows="10" name="mess" cols="30"></textarea>
<br />Файл<br />
<input name="attachfile" type="file" size="28">
<br />Изображение<br />
<input name="attachimage" type="file" size="28">
<br /><br /><input type="submit" value="Отправить" name="submit">
</div>
</form>
* Помечены поля, которые необходимо заполнить
//И до сюда(ниже не трогать!)
<?


21.02.2010   Алексей

Вместо стандартной формы



04.02.2010   Денис

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

В spamlist.txt каждый email с новой строки
<?php
// подключаем файл класса для отправки почты
require 'class.phpmailer.php';
$arr file('spamlist.txt');
foreach (
$arr as $key => $value) {
        
$mail = new PHPMailer();
        
$mail->From 'test@test.ru';      // от кого
        
$mail->FromName 'Злостный спамер';   // от кого
        
$mail->AddAddress($value$value); // кому - адрес, Имя
        
$mail->IsHTML(true);        // выставляем формат письма HTML
        
$mail->Subject 'тема письма';  // тема письма
        
$mail->Body 'Вас приветствует спам рассылка<br><br>ку-ку';

        
// отправляем наше письмо
        
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
        echo 
'Письмо отправлено на <a href="mailto:">'.$value.'</a><br>';
}
?>


11.01.2010   Игорь

Изумительный код, спасибо! Но еще бы добавить четвертый пример - форма с отправкой приложенного файла и капчей.



12.12.2009   Alex

блин .. у меня паника..
все пишут что можно отправить писмо с прикрепленым файлом... Вопрост.. как мне сделать все тоже что пишут но только с условием того что файл уже находится на сервере и мне при отправки писма нужно просто прикрипить то что находится на СЕРВЕРЕ... помогите плиз .. пытался просто указать полный путь к файлу но, не чего не приходит(. Текст есть а файла типа .doc нету(


30.12.2009   Николай

Ну допустим, что у тебя в папке mail лежат два файла.
Один mail.php, в который подгружаешь класс PHPMailer, а другой файл - картинка img.jpg

<?php
$m->AddAttachment('img.jpg','kartinka.jpg');
?>

img.jpg - это ссылка на файл.
kartinka.jpg - имя, которое будет отображаться в письме.



09.12.2009   Azalakso

У меня делается рассылка нескольким адресатам.
Вот как я это делаю:
for($j=0;$j&lt;count($_POST['em_adress']);$j++)
{
    if (!empty($_POST['em_adress'][$j]))
        $mail-&gt;AddAddress($_POST['em_adress'][$j], 'Имя');
}
Ноя мне надо сделать так, чтобы при получении письма, скрывались все остальные адресаты помимо данного. Как это сделать?
Я так понял как-то с помощью AddBCC, но ничего не выходит!
А еще у меня не распознаются html теги в сообщении, хотя $mail-&gt;IsHTML(true);
Т.е. письмо даже не в формате HTML приходит. Т.е. <b>Текст</b> не выделяется никак...
Как это решить?
Заранее спасибо!



30.10.2009   dron

Люди, помогите пожалуйста! Вопрос жизни сайта! Где надо ввести адрес майла на который будет отправляться сообщение?

        $mail->AddAddress('to@yandex.ru', 'Имя'); // кому - адрес, Имя


27.10.2009   Макс

Забавно..
Косяк был где-то сдесь. Этот оператор упорно проверял e-mail при любом значении value в строке hidden поля.
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1)



27.10.2009   Макс

Как сгенерировання форма определяет, какое поле ей проверять заполнено ли? У меня упорно проверяет e-mail и только его.
Я так понял, это где-то тут:
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
$sendemail = 'No';
echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';



13.10.2009   Bo3Dyx

Порадовал "Генератор форм обратной связи" +1 в карму



04.10.2009   Александр

И еще возник вопрос. Автор прописал, как проверять правильность ввода имени, е-мейла и сообщения, а как на счет прикрепленного файла ни строчки. Мне надо обязательно проверять, прикрепил посетитель файл или нет, а то шлют чертеняки пустые письма. Хоть кто ни будь, помогите. Что в код дописать надо. Плиз, очень надо!


        // если был файл, то прикрепляем его к письму
        
if(isset($_FILES['attachfile'])) {
                 if(
$_FILES['attachfile']['error'] == 0){
                    
$mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
                 }
        } else
                 
output_err(3);

        
// И в function output_err($num)
        
$err[3] = 'ОШИБКА! Прикрепите файл.';

27.05.2010   ММС

if(!empty($_FILES['attachfile']['tmp_name'])) {
if($_FILES['attachfile']['error'] == 0){
$mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
}
} else
output_err(3);



18.09.2009   Александр

Странно работает форма отправки сообщений с сайта. Проблема вот в чем. В форме указаны обязательные поля для заполнения, так вот, если какое льбо поле формы заполнить не верно или не заполнить совсем, то при нажатии на кнопку \\\\&amp;amp;quot;Отправить\\\\&amp;amp;quot; происходит нечто не понятное. Пропадает всё, что находится ниже формы, и текст и изображения, короче пол страницы пропадает и как я понимаю вместе с тегами отрезается, так как оставшаяся верхняя часть страницы разезжается на весь экран.
<br>&lt;br&gt;&amp;lt;br&amp;gt;
<br>&lt;br&gt;&amp;lt;br&amp;gt;Подскажите, как избавится от этой проблемы.



02.09.2009   Olivka

Ой, не то написала!
Вместо строки $mail->AddAddress('to@yandex.ru', 'Имя');
Напиши:
$mail_user = $_POST['email'];
$name_user = $_POST['name'] ;
$mail->AddAddress($mail_user, $name_user);



02.09.2009   Olivka

gral, я скажу :)
вместо $from='test@test.ru';
напиши $from=$_POST['email'];



31.08.2009   gral

кто скажит как изменить скрипт чтоб отправлялось именно на тот ящик который укажит пользавотель сайта!? плиз!!!!!!!!!



24.08.2009   Ferris

Спасибо! Замечательный скрипт:)



20.07.2009   Арт

Спасибо! классная статья!



17.07.2009   Vladis

Как-то грязно написан код...



27.06.2009   Till

Здраствуйте! В форме мне надо выбирать только картинку, т.е файла нету(в форме), но ... надо чтобы все тело письма ($mess) включая картинку записывались в файл и этот файл отправлялся в письме(т.е чтобы было обычное письмо + во вложении файл в котором тоже самое что в пиьме). Возможно ли это сделать несоздавая файла на сервере?
Заранее спасибо!



16.06.2009   Сергей

Подскажите, пожалуйста,
а как сделать так, чтобы перед отправкой проверялось наличие вложенного файла и при отсутствии выдавалось сообщение?
какой будет код?



12.06.2009   Andrey

Подскажите пожалуйста, а как отправить файл не с локального диска пользователя, а с ссылки, т.е.
<br>&lt;br&gt;www.qwe.qwe/downloads/qwe.pdf - на пример.
<br>&lt;br&gt;
<br>&lt;br&gt;Пробывал подставлять сылку в
<br>&lt;br&gt;$_FILES[\\\'attachfile\\\']=\\\'www.qwe.qwe/downloads/qwe.pdf\\\'
<br>&lt;br&gt;Письмо приходит со статусом прикрепленного файла, а самого файла неть.
<br>&lt;br&gt;Шо делать?
<br>&lt;br&gt;
<br>&lt;br&gt;Благодарю за внимание ))



11.06.2009   Николай

Та же проблема что и у Александра!
<br>&lt;br&gt;&amp;lt;br&amp;gt;в поле от почему-то устанавливается адрес постмастера. (у нас используется битрикс- может он как-то это делает...)
<br>&lt;br&gt;&amp;lt;br&amp;gt;Не понимаю.
<br>&lt;br&gt;&amp;lt;br&amp;gt;Если например сделать что-то вроде
<br>&lt;br&gt;&amp;lt;br&amp;gt;$mail-&amp;amp;gt;From = \\\\\\\'&amp;amp;lt;\\\\\\\'.$_POST[\\\\\\\'input_name\\\\\\\'][2].\\\\\\\'&amp;amp;gt;\\\\\\\';
<br>&lt;br&gt;&amp;lt;br&amp;gt;то адрес прописывается, но в виде &amp;amp;lt;&amp;amp;lt;lalal@lala.com&amp;amp;gt;&amp;amp;gt;
<br>&lt;br&gt;&amp;lt;br&amp;gt;и это тоже ошибочно. Но если убрать \\\\\\\'&amp;amp;lt;\\\\\\\' и \\\\\\\'&amp;amp;gt;\\\\\\\'
<br>&lt;br&gt;&amp;lt;br&amp;gt;$mail-&amp;amp;gt;From = $_POST[\\\\\\\'input_name\\\\\\\'][2];
<br>&lt;br&gt;&amp;lt;br&amp;gt;то получаем вышеописанную проблему- вместо адреса отправителя имеем в сформировавшемся письме адрес постмастера.


27.02.2010   Александр

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



09.06.2009   Александр

Добрый день! Все супер, все работает, но вот мне это не помогло, все равно в письме в поле от кого пишет майл хоста (postmaster@akva.nichost.ru), а не отправителя?



04.06.2009   Fduch

Файл сохранить в форме так просто не получится.
Забудьте об этом :)



20.04.2009   Александр

Христос воскрес!
Подскажите, как сделать так, чтобы при ошибке сохранялось значение поля выбранного файла. Логически пробовал так:
<input type="file" name="attachfile"<?if(isset($_FILES['attachfile'] echo 'SELECTED';?>>
но файл при ошибке в поле не сохраняется.
Помогите "чайнику" если можете.
Заранее спасибо!



02.04.2009   toha

Я почему задал этот вапрос)))

увидел сайт и форму, вот ссылка (прямая)

www.rentapartmentkiev.com/eng/reservation.html

как видете, как-то же продукт работает)) .html разрешение является примером))

Практики маловато, работаю на ошюпь)

ПЛИЗ!!!! Дайте комент по ссылке, это меня беспокоит))

Вы бы код посмотрели. Там iframe. Почту шлет http://www.rentapartmentkiev.com/eng/mailer.php. К тому же .htaccess и настройки сервера никто не отменял. Так что если видите *.html - это вовсе не значит что в файле только html код.


02.04.2009   toha

Вижу коменты все помогают друг-другу! Вот мой вопрос, как разместить этот скрипт (форму обратной связи), на страницу сайта, написаного на аштимл, или этот продукт идёт только под ПИшПИ????

очень жду помоши, важно!

Нужен php.


04.03.2009   Pros

спасибо за форму! подскажите пожалуйста какой код надо добавить в форму что бы после ошибки юзера поля формы не очищалясь, забыл например имя набрать выскакивает сообщение и... надо всё заново набирать.
<br>&lt;br&gt;&amp;lt;br&amp;gt;
<br>&lt;br&gt;&amp;lt;br&amp;gt;спачибо ещё раз.



01.03.2009   Павел

Я в шоке! Скрипт просто СУПЕР! Я 4 дня искал нормальный скрипт, а тут случайно подвернулся и БИНГО! Спасибо!!!



27.02.2009   Александр

Спасибо за сайт. Впервые столкнулся с РНР и сразу все получилось. Скрипт роботает как золотые швейцарские часы: без сбоев, точно и с блеском. Но есть одна загвоздка. Когда пользователь не заполнил одно из обязательных полей и нажал кнопку ОТПРАВИТЬ, скрипт выдает надпись ОШИБКА, все происходит так как и должно быть. Проблема в следующем: форма относительно большая, содержит много полей.Когда пользователь доходит до кнопки ОТПРАВИТЬ, верхние поля формы и сообщение об ошибке находятся в не видимой зоне монитора. Не заметив сообщение об ошибке пользователь может уйти со страницы не отправив письмо. Как сделать так, что бы сообщение ОШИБКА появлялось где-нибудь возле кнопки ОТПРАВИТЬ. Помогите.


23.12.2010   webprog26

Используйте Javascript: onBlur() например для проверки формы по ходу ее заполнения.



18.02.2009   infolex

Разобрался. В коде ошибка есть..
Вместо <img src="cid:image.gif" border=0> надо <img src="cid:my-attach" border=0> писать, то есть не имя файла, а имя аттача.


25.11.2009   zurito

infolex красавчик, спасибо, а то я бился чтобы embedded image корректно отображался И в почтовом клиенте (thebat, outlook) И в браузере. Твой коммент помог.


30.01.2010   Вентилятор

infolex, респект!
!!!!!!!!!!!!!!!!! читать его пост всем !!!!!!!!!!


14.03.2012   Владимир

И мне помогло!!! Спасибо.



18.02.2009   infolex

У мну вопрос:

В классе есть возможность вбивать сразу несколько СКРЫТЫХ получателей путем
$mail->AddBCC(мыло);
$mail->AddBCC(мыло);
$mail->AddBCC(мыло);
$mail->AddBCC(мыло);
$mail->AddBCC(мыло);
$mail->AddBCC(мыло);
...........

Потом формирууется хеадер и письмо отправляется.
Вопрос. Этот список ограничен?? Можно например более 1000 вбить?



12.02.2009   JoHn

Скрипт заработал. А вот через smtp такое чувство не отправляет!, т.к. при любом пароле письма проходят!!! Письма опять не доходят до mail.ru, хотя он мне сказал , что вынес меня из черного списка.

Помогите. В чем дело? Что еще можно попробовать? Или хотя бы скеажите почему письмо не идет через смтп.



11.02.2009   inko

Спасибо ip заработало со строкой
IP адрес отправителя письма:'.getenv("REMOTE_ADDR").'



11.02.2009   inko

Извините еще вопрос, как сделать чтобы после отправки форму запускался какой либо файл в другом окне это надо для статистики гугла. Не могу сообразить как к <input type="submit" value="Отправить" name="submit"> </center>
это прикрутить.
<a href="#" onClick="window.open('mail_result.php', 'newWin', 'Toolbar=0, Location=0, Directories=0, Status=0, Menubar=0, Scrollbar=0, Resizable=0, Copyhistory=1, Width=350, Height=40,top=100,left=600'),document.getElementById('form').submit()">отправить письмо.</a>



11.02.2009   inko

Спасибо но ip все равное показывает, а дату показывает .
у меня до этого работало через<form action="mail.php">
Написал как посоветовали на ip не выдает
$mess = '
Текст сообщения:'.$_POST['text_r'].'
IP адрес отправителя письма:'.$REMOTE_ADDR.'
Дата письма:'.date("h.m.d.m.Y").'
'.$_POST['mess'];

Замените $REMOTE_ADDR на $_SERVER['REMOTE_ADDR'] или getenv("REMOTE_ADDR")


11.02.2009   JoHn

Пишет:
Mailer Error: Language string failed to load: from_failedorder-send@yandex.ru

language.zip. Попробуйте разархивировать в папку со скриптом.


11.02.2009   inko

Подскажите как сделать чтобы в приходящем письме указывалcя IP И дата написания.
в предидущей форме у меня это работало
\nIP адрес отправителя письма:".$REMOTE_ADDR."
\nДата письма:"." ".date("d.m.Y");
а в этой не получается ничего

Все у Вас правильно написано. Попробуйте заменить так:
$mess = '
<b>Имя отправителя:</b>'
.$_POST['name'].'<br />
<b>Контактный телефон:</b>'
.$_POST['tel'].'<br />
<b>Контактный email:</b>'
.$_POST['email'].'<br />
'
.$_POST['mess'];

на
$mess = '
<b>Имя отправителя:</b>'
.$_POST['name'].'<br />
<b>IP адрес отправителя письма:</b>'
.$REMOTE_ADDR.'<br />
<b>Дата письма:</b>'
.date("d.m.Y").'<br />
<b>Контактный телефон:</b>'
.$_POST['tel'].'<br />
<b>Контактный email:</b>'
.$_POST['email'].'<br />
'
.$_POST['mess'];


11.02.2009   JoHn

А можно поподробнее.
$mail->Host = 'smtp.peterhost.ru'; // SMTP сервер
Я его должен поменять? И какой он на яндексе?

По сути я просто добавил:
$mail->IsSMTP();// отсылать используя SMTP
$mail->Host = 'smtp.yandex.ru'; // SMTP сервер
$mail->SMTPAuth = true; // включить SMTP аутентификацию
$mail->Username = 'order-send@yandex.ru'; // пропишите Ваш почтовый адрес
$mail->Password = 'пароль ящика'; // введите пароль на указанный ящик

Не работает. Растолкуйте пожалуйста. Очень прошу.
Выдает:
Warning: PHPMailer::SmtpSend(class.smtp.php) [function.SmtpSend]: failed to open stream: No such file or directory in /usr/local/htdocs/test.azur.ru/class.phpmailer.php on line 460

Warning: PHPMailer::SmtpSend() [function.include]: Failed opening 'class.smtp.php' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/htdocs/test.azur.ru/class.phpmailer.php on line 460

Fatal error: Class 'SMTP' not found in /usr/local/htdocs/test.azur.ru/class.phpmailer.php on line 527

Скачайте class.phpmailer.zip - я в него добавил class.smtp.php


10.02.2009   JoHn

Понимаешь. Данный код может встретиться на разных моих сайтах. И что мне тогда для каждого сайта писать письмо в службу поддержки mail.ru? Просто на со всех сайтов не приходит =(
Не уж-то только в этом проблема?

Попробуйте сделать через SMTP. Зарегестрируйте почтовый ящик и замените
$mail
= new PHPMailer();
$mail->From = 'test@test.ru';      // от кого

на
$mail
= new PHPMailer();
$mail->IsSMTP();// отсылать используя SMTP
$mail->Host     = 'smtp.peterhost.ru'; // SMTP сервер
$mail->SMTPAuth = true;     // включить SMTP аутентификацию
$mail->Username = 'mail@php-mail.ru';  // пропишите Ваш почтовый адрес
$mail->Password = '******'; // введите пароль на указанный ящик
$mail->From     = 'mail@php-mail.ru'; // укажите от кого письмо


10.02.2009   JoHn

Огромное спасибо за код.

У меня такая проблема: Не отправляю письмо на mail.ru. При чем на любой другой отсылается. На все приходит, кроме mail.ru. Почему?
Письмо стандартное. Никаких ошибок не выдается. Письмо просто не приходит

Помогите пожалуйста.

Попробуйте написать в службу поддержки mail.ru просьбу о вынесении Вашего ip из спам-листа

08.06.2010   маринка

Отправляю эротические фотки в майл.ру.Но до адресата они не доходят.Хотя обычные отсылаются.Почему?


18.12.2011   Влад

Маринка, отсылайте тогда их нам =))



01.02.2009   Виктор

Повторюсь :) Респект автор, два таких полезных сайта!

спасибо


22.01.2009   streks

Спасибо! Все работает



21.01.2009   streks

Все сделал по этому скрупту. Но на сервере выводит ошибку:
Warning: require(class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in /home/tu2.ru/a/av/avtoelita/htdocs/www/1.php on line 61

Fatal error: require() [function.require]: Failed opening required 'class.phpmailer.php' (include_path='.:/usr/local/lib/php') in /home/tu2.ru/a/av/avtoelita/htdocs/www/1.php on line 61
Что сие означает?

сие означает, что на сервере в директории "/home/tu2.ru/a/av/avtoelita/htdocs/www/" нет файла "class.phpmailer.php"


07.01.2009   Максим

С Новым Годом! И спасибо за скрипт! все работает, как часы!



07.01.2009   Влад

Офигенные скрипты! И администратор очень чётко всё расписывает. Всё пробую ставить по очереди, и хотя и не сразу, но получается. Даже с PHP начинаю немножко разбираться после таких разъяснений ;) Вот если ещё узнать, как поставить \\\\\\\\&amp;amp;amp;quot;код подтверждения\\\\\\\\&amp;amp;amp;quot; как здесь, то вообще радости не будет предела... Спасибо!



17.12.2008   El

Помогите, пожалуйста, нигде не могу найти решения проблемы - у меня не отправляются одновременно текст в textarea и файл, только либо то, либо другое. С вашим скриптом та же проблема. Помогите, пожалуйста, очень надо!!!



12.12.2008   Сергей

Все работает .Спасибо.Как зделать что бы после отправки письма посетитель не возращался на прежнию а переходил на другую страницу?



30.11.2008   Дмитрий

"18.02.2008 Mff

Mailer Error: Could not instantiate mail function. Что с этим теперь делать! Пытаюсь организовать рассылку, но вот после того как добавил папку language стало появляться вот это сообщение. Хостинг Агава.
18.02.2008 Mff

Постоянно выдается сообщение Mailer Error: Language string failed to load: instantiate. language.zip непомогает!"

У меня тот же самый сценарий был. Обратился в службу тех. поддрежки хостера - они там у себя что-то в конфиге, говорят, подправили и все пошло. С большой вероятностью, это проблемы хостинга...



27.11.2008   Егор

А какие расширения для php мне нужно поставить на сервере чтобы функция mail(которая используется классом class.phpmailer.php) заработала? Извините за глупый вопрос - совсем недавно начал изучать php.



20.11.2008   Mintol

И снова я =)
Попробовал как вы посоветовали по 3 методу, стало не получатся, тогда я решил поставить точ в точ вашу версию на голую страницу, только получателя и отправителя поменял, в итоге получается что или где то у вас ощибка или всё таки я что то не секу... по вашей версии на мыло приходит сообщение в теле которого тупо буква "Р"...
Помогите пожалуйсто разобратся.



20.11.2008   Юрий

Огромная просьба!
Напишите пожалуйста пример кода для отправки писем, текст которых вставлялся бы из внешнего файла, .txt или .html
Спасибо



19.11.2008   Алексей

Извините Я "чайник" в этом деле!Скажите-вот я создал папку и вложил туда 3 файла.загрузил на сервак.А как ссылку настроить на какой из файлов?class.phpmailer или на mail?



16.11.2008   Иван

КРАСАВЧИК! Респект тебе и уважуха из Краснодара!



13.11.2008   Никитос

Большое спасибо... тут столкнулся с 1 проблемкой
у меня поле title задаеть на самом сайте стандартное для всех... в общем что то кодировки глючат.
Строка выглядит примерно вот так
$_POST['title']='Форма заказа'
ну в общем в теме какая то кракозябра получаеться... как исправить не знаете?



11.11.2008   YBS

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



02.11.2008   любопытный

сам пример, конечно, здорово (видел много где - оно и верно), но молодец, что отметил:
<IfModule mod_charset.c>
CharsetRecodeMultipartForms off
</IfModule>

Отсюда вопрос: что это, зачем и с чем кушается?

CharsetRecodeMultipartForms Off Директива выключает перекодировку передаваемых на сервер данных. Используется в тех случаях, когда скрипт производит загрузку на сервер каких-либо файлов, например картинок. Важно чтобы файл .htaccess лежал в той же директории, что и скрипт с формой закачки, либо находился выше его уровнем.


22.10.2008   Julia

Автор, тебе огромное спасибо! Не каждый может написать так, чтобы и "чайнику" (вроде меня) было понятно.
+1 к просьбам примера с кодом подтверждения типа ккапчу :-)
To 'guest': а вот поливать грязью других, ничего не делая самому, может ЛЮБОЙ ДУРАК :-Ь



24.09.2008   guest

сайт полное говно! расчитано на чайников! ничего полезного не увидел! и умного тоже!



23.09.2008   norma12@inbox.lv

OK!



20.09.2008   Владимир

Хорошо, что есть на свете такие люди!!!
Огромное спасибо Вам!!!



16.09.2008   Данила

Автору огромнейший респект и спасибо!

Вопрос аналогичный вопросу Алекса, как прикрутить kcaptcha ?
(а лучше даже не ккапчу, а ващ вариант, как в этой гостевухе=) )



03.09.2008   Стрелок

ага, ну да -- либо файл, либо картинка....
<br>но и то спасает, сенкс еще раз...



27.08.2008   vt

АВТОРУ ТОТАЛЬНЫЙ РЕСПЕКТ!!!



22.08.2008   Алекс

Как прикрутить kcaptcha к этой форме?
<br>Скачал от сюда: www.captcha.ru/kcaptcha/
<br>Подставил элементы в форму, но письма отправляются даже при неверном вводе.



21.08.2008   Александр

Имя из этой строки в письме почему-то не появляется:

$mail->AddAddress('to@yandex.ru', 'Имя');



21.08.2008   Александр

Не работает антифлуд (пустой файл antiflood.txt лежит в папке со скриптом и в корне).

Также письма не отправляются, если адрес получателя такого вида:

<?php
function show_form()
{
?>
<form action="" method=post enctype="multipart/form-data">
<br />Имя*<br />
<input type="text" name="name" value="<?=substr(htmlspecialchars(trim($_POST['name'])), 0, 50);?>" size="40" maxlength=50>
<br />Город<br />
<input type="text" name="city" value="<?=substr(htmlspecialchars(trim($_POST['city'])), 0, 50);?>" size="40" maxlength=50>
<br />Контактный телефон<br />
<input type="text" name="tel" value="<?=substr(htmlspecialchars(trim($_POST['tel'])), 0, 50);?>" size="40" maxlength=50>
<br />Контактный email*<br />
<input type="text" name="email" value="<?=substr(htmlspecialchars(trim($_POST['email'])), 0, 50);?>" size="40" maxlength=50>
<br />Teма<br />
<input type="text" name="title" value="<?=substr(htmlspecialchars(trim($_POST['title'])), 0, 200);?>" size="83" maxlength=200>
<br />Сообщение*<br />
<textarea rows="10" name="mess" cols="80" wrap="soft" maxlength=10000><?=substr(htmlspecialchars(trim($_POST['mess'])), 0, 10000);?></textarea>
<br /><p><input type="submit" value="Отправить" name="submit"><br />
* Отмечены поля, которые необходимо заполнить</p>
</form>
<?
}

function complete_mail() {
// $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
$_POST['title'] = substr(htmlspecialchars(trim($_POST['title'])), 0, 200);
$_POST['mess'] = substr(htmlspecialchars(trim($_POST['mess'])), 0, 10000);
$_POST['name'] = substr(htmlspecialchars(trim($_POST['name'])), 0, 50);
$_POST['city'] = substr(htmlspecialchars(trim($_POST['city'])), 0, 50);
$_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 50);
$_POST['email'] = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
// если не заполнено поле "Имя" - показываем ошибку 0
if (empty($_POST['name']))
output_err(0);
// если неправильно заполнено поле email - показываем ошибку 1
if(!preg_match("/[0-9a-z_.]+@[0-9a-z^\-.]+\.[a-z]{2,3}/i", $_POST['email']))
output_err(1);
// если не заполнено поле "Сообщение" - показываем ошибку 2
if(empty($_POST['mess']))
output_err(2);
// обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-)
$mess = '
Имя: '.$_POST['name'].'
Город: '.$_POST['city'].'
Контактный телефон: '.$_POST['tel'].'
Контактный email: '.$_POST['email'].'
'.$_POST['mess'];

// подключаем файл класса для отправки почты
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->From = $_POST['email']; // от кого
$mail->FromName = $_POST['name']; // от кого
$mail->AddAddress('mail@my-domain.ru'); // кому - адрес
$mail->IsHTML(false); // выставляем формат письма HTML
$mail->Subject = $_POST['title']; // тема письма
$mail->Body = $mess;

// отправляем наше письмо
$filename = "antiflood.txt";
chmod($filename, 0644);
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

if($contents != $mess){
$file = fopen("antiflood.txt", "w");
fputs ($file, $mess);
fclose ($file);
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
}
echo 'Спасибо! Ваше письмо отправлено.';
}

function output_err($num)
{
$err[0] = 'ОШИБКА! Не введено имя.';
$err[1] = 'ОШИБКА! Неверно введен e-mail.';
$err[2] = 'ОШИБКА! Не введено сообщение.';
echo '<p>'.$err[$num].'</p>';
show_form();
exit();
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

Добавил в Ваш код строку:
chmod($filename, 0644);
Попробуйте, может поможет.


21.08.2008   Long Life Северо-Запад

Не отправляются письма, если мэйл получателя вида info@domain-ab.ru и выдаёт ошибку е-мэйла на вполне нормальные обратные адреса типа alex.f@domain-123.ru



12.08.2008   Алекс

Что сказать, не смотря на пятницу, делаете всё Вы более,чем уверенно))) Всё работает! Осталось немного настроить, и в путь! Ещё раз, огромное спасибо!=)



08.08.2008   Алекс

Спасибо огромное за скрипт! Настроил в html под сайт, с оригинала формы генератора. Всё отлично работает. Единственное, что не получается, это, чтобы логи отправленных сообщений записывались в отдельный файл, например, mail.txt. Есть подозрения, что не все письма доходят. Сможете помочь с этим?

Пятница ночь, разрешите быть неуверенным в ответе :)) Что-то типа вот такого:
$mess = date("Y-m-d").$mess;
$file = fopen("log.txt", "a");
fputs ($file, $mess);
fclose ($file);


07.08.2008   Serichka

Спасибо авторам сайта огромное!

Подскажите пожалуйста, чтобы в это ($mail->From = 'mail@mail.ru'; // от кого ) поле пользователь вписывал свой имеэйл, как это сделать? Это мне нужно для того чтобы на почте вкючить автоответчик и пользователю тогда сможет приходит ответ о благодарности!

$mail->From = 'mail@mail.ru';
меняем на:
$mail->From = $_POST['email'];


03.08.2008   Раиса

Я не могу понять, где определен цвет ячейки для ввода имени и ящика (желтый, то бишь). Подскажите, пожалуйста, а то желтый меня не устраивает.

Если правильно понял вопрос, то попробуйте задать в css:
input{background-color: #fff;}


29.07.2008   Дмитрий

Этот адрес Вы дали мне?



28.07.2008   Дмитрий

Прошу о помощи!
Скрипт установил как положено. Хостинг от Jino.ru
Проблема: Письменное сообщение приходит исправно, а файлов и картинок нет. Пробывал с .htaccess и без, все равно не выходит. Пожалуйста, подскажите, на что следует обратить внимание!?
Кстати, очень благодарен Вам за эти скрипты, до-олго я их искал.



22.07.2008   овик

вот я поставил этот скрип но как мне сделать чтоб при нажатие кнопки отравить сообщение ухадила мне на почту.



10.07.2008   Наталья

Пока не разбиралась



01.07.2008   Ольга

Спасибо огромное.
Скрипт как раз тот, что нужен!



21.06.2008   Константин

Спасибо. Скрипт то что нужно для дела )



09.06.2008   ASP

Скрипт работает, но если после отправки обновить страницу ( с незаполненными полями) то сообщение отправится ещё раз и так до бесконечности



03.06.2008   Павел

Все 3 скрипта написаны с кучей ошибок. Привожу далее сайт, где можно разобраться во всем по порядку: и с кодировкой, и с возможностью спама, взлома..
<br>&lt;br&gt;Еще раз повторюсь - привиденные скрипты не считаю пригодными для использования! Будьте аккуратнее!!
<br>&lt;br&gt;
<br>&lt;br&gt;www.netangels.ru/support/articles/php-mail/


04.10.2010   Сергей

по указанному адресу ошибка 404



02.06.2008   http://www.kondratiy.org

Хороший скрипт, написан со вкусом...
Вот только я не спец в ПХП и мне вобще как-то он непонятен :))



01.06.2008   Сново

HELP PLZ!!! Разобрался со всем, но как реализовать выбор из списка, select например, у меня форма отдельным файлом, а сам php обработчик в другом. И что бы было все в файле php обработчика, а не формы, Заранее спасибо!



26.05.2008   Катя

Павлу: нужно скрипт обработки формы, начиная с: &lt; ? } function complete_ mail()..... ?&gt; вставлять в самый конец страницы, перед &lt;/body&gt;.
<br>И ещё вопрос администратору сайта: не подскажите, где вы эту форму добавления комментариев приобрели?(в которой я сейчас пишу). Мне очень понравилась, я бы тоже приобрела себе такую!



21.05.2008   Павел

Здравствуйте. Есть проблема. Значит при заполнении всех полей правильно, все прекрасно отправляется и письмо приходит. Всё отлично. И форма заказа выглядит как надо. А вот если не заполнить какое-либо поле со звездочкой, то появляется ошибка, например Ошибка! не заполнено имя... но при этом пропадает подвал на сайте. То есть остается левая колонка и форма отрпавки. А нижняя часть сайта отрезается до момента:

<p>&nbsp;</p>
<img src='star.gif' width='15' height='15' border='0' /> Помечены поля, которые необходимо заполнить

Такая ерунда на двух сайтах есть где я установил такую форму. ПОчему так?



16.05.2008   Илья

Доброго времени суток! Все работает отлично, акромя одной детали:
Письмо приходит в кодировки Koi-8, а мне нудно, чтобы приходило в win-1251. Rfr это прописать?



28.04.2008   Ирина

здравствуйте.Спасибо за ваш труд.Попыталась использовать его в своих нуждах и вот... при отправке письма с формы возникает ошибка Mailer Error: Could not instantiate mail function.
Подскажите, в чем может быть проблема? Спасибо.



26.04.2008   Светлана

Спасибо за скрипт, все замечательно. Не подскажите, как сделать, что бы прикрепленные файлы приходили все с одним заданным именем, например "файл1", "файл2" и т.д. С картинками сдорово получилось.



19.04.2008   Колян

Беру свои слова обратно, предыдущие три поста считать недействительными, кроме слов про классный скрипт и поляну. Позор на мою голову, посты внимательней читать нужно, умные люди давно уже все рассказали! Еще раз: афтар, Красавчег, пеши исчо!



19.04.2008   Колян

зызы. reksite@inbox.ru



19.04.2008   Колян

зы. Я пробовал и из генератора скрипт ковырять, и из примера, фигвам.



19.04.2008   Колян

ПА-МА-А-А-ГИ-И-И-ТЕ!!!!! Такой классный скрипт, то что надо. Я весь инет облазил, этот самый лучший. Но вот в чем проблема. Мне нужно отправлять прикрепленный jpeg, а в теле письма его иконку. Все получается на УРА, но только с одним файлом:
if(isset($_FILES['file_name'])) {
if($_FILES['file_name']['error'][0] == 0){
$mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
}
}

if(isset($_FILES['file_name'])) {
if($_FILES['file_name']['error'] == 0){
if (!$mail->AddEmbeddedImage($_FILES['file_name']['tmp_name'], 'my-attach', 'image1.gif', 'base64', $_FILES['file_name']['type']))
die ($mail->ErrorInfo);
$mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0 width=100> ';
}
}
А мне нужно много. Не смейтесь над чайником, помогите! С меня поляна!



10.04.2008   Оболтус

Народ, подскажите, как с помощью этого сделать рассылку сразу нескольким адресатом.



02.04.2008   Борис Vaeld Гуккаев

Автору - огромное спасибо, просто молодец, а то самому писать времени нет. Респект ;-) Легко настраивается, отлично работает - 5 баллов.



18.03.2008   Я

А как сделать чтоб строчка Спасибо! Ваше сообщение отправлено. была бы зеленого цвета?



16.03.2008   fileemail.ru

нормальный пример!
<br>сам с .htaccess мучился, а тут разжували



16.03.2008   Катрин

Эта форма не работает на сервере, там стоит PHP5.
Возникает ошибка:
Warning: complete_mail(class.phpmailer.php): failed to open stream: No such file or directory in /pub/home/vis/htdocs/contact.php on line 91

Warning: complete_mail(class.phpmailer.php): failed to open stream: No such file or directory in /pub/home/vis/htdocs/contact.php on line 91

Fatal error: complete_mail(): Failed opening required 'class.phpmailer.php' (include_path='.:/usr/local/share/pear') in /pub/home/vis/htdocs/contact.php on line 91



14.03.2008   Аиша

А можно этот скрипт переделать так, чтоб на е-майл приходил только файл, т.е чтоб не было полей тема, сообщение и др., а было бы одно поле - добавить файл ? Подскажите пожалуйста, как это написать, и вообще возможно ли?



12.03.2008   Ирина

Скрипт работает!
Спасибо автору сайта,но возник вопрос...
При получении mail.ru в заголовках пишет, что есть подозрение на спам



10.03.2008   Дмитрий

Спасибо Классный скрипт!
Не подскажите как сделать выпадающий список ?



10.03.2008   Александр

О прикольно все заработало спасиб за скрипт.
А если у меня стоит денвер.И все письма скидываются в папку tmp\!sendmail , то после того как я залью на сервер(Peterhost) все будет отсылатся ,как надо ?
Заранее спасибо за ответ



10.03.2008   Александр

А скрипт должен работать на локальном сервере ?



06.03.2008   Катерина

Здравствуйте, хороший скрипт, спасибо! У меня все работает, сообщения и файлы на почту отправляются, но....Имеются 2 проблемки: первая - в форме у меня на страничке(www.fotoglamur.com/for.php) надписи не по русски, а непонятными значками, подскажите как и где прописать кодировку windows 1251 к этому скрипту? И вторая проблемка - когда отправишь сообщение появляется страничка с надписью Спасибо! Ваше сообщение отправлено, а ниже этих слов всё отрезано, хотя часть скрипта по обработке формы я вставила вроде правильно(перед закрытием /body). Помогите пожалуйста!



06.03.2008   Светлана

Помогите пожалуйста. после получения письма вложенный файл не открывается. В чем может быть проблема?



04.03.2008   Йорк

столкнулся с проблемой, при отправке картинки в оутлуке картинка не подгружается, а выглядит крестиком (типа неправильный адрес)

решил проблему исправлением одной строчки в function complete_mail():
// если было изображение, то прикрепляем его в виде картинки к телу письма.
if(isset($_FILES['attachimage'])) {
if($_FILES['attachimage']['error'] == 0){
if(!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type']))
die ($mail->ErrorInfo);
$mess .= '<br />А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) ';

заменил в тэге img путь к картинке src="cid:my-attach" т.е. указатель на id картинки



20.02.2008   Oleg

Посыпаю голову пеплом!
В самом начале было указано - сделайте файл .htaccess определенного содержания. Неплохо бы было указать еще и зачем. :)
Оказывается, русский apache перекодирует некоторые символы, в частности символы с кодом 00 он переводит в символ с кодом 20 (пробел), и что бы этого не было и нужен вышеописанный файлик.



19.02.2008   Oleg

Так, почитав комменты, понял, что по первой части вопроса нужно пользовать конструкцию "$_FILES['attachfile']['name']", но вторая часть (про присоединенный word-овский файл, требует ответа...



19.02.2008   Oleg

Судя по комментам, автор тут явно появляется. Поэтому надеюсь таки не ответ! Проблема вот в чем. Сделал форму: имя телефон, e-mail, присоединенный файл. Первое - как проверить - действительно ли файл присоединен? Конструкция с полями типа input не прокатиывает. :( Второе и самое главное - присоединенный word-овский файл при скачивании не открывается, хотя размер совпадает байт в байт. При детальном рассмотрении выяснилось, что все байты с кодом '00' стали байтами с кодом '20'! Это можно как-то поправить?



18.02.2008   Mff

<b>Mailer Error: Could not instantiate mail function.</b> Что с этим теперь делать! Пытаюсь организовать рассылку, но вот после того как добавил папку language стало появляться вот это сообщение. Хостинг Агава.



18.02.2008   Mff

Mailer Error: Could not instantiate mail function. Что с этим теперь делать! Пытаюсь организовать рассылку, но вот после того как добавил папку language стало появляться вот это сообщение. Хостинг Агава.



18.02.2008   Mff

Постоянно выдается сообщение Mailer Error: Language string failed to load: instantiate. language.zip непомогает!



09.02.2008   Николай

Выдается сообщение Mailer Error: Language string failed to load: instantiate.
Как исправить?

language.zip. Попробуйте разархивировать в папку со скриптом.


26.01.2008   Юрий

Не силён в PHP
Куда вписать свои данные чтобы письмо с сайтаприходило именно мне?



25.01.2008   Андрей

Автору скрипта большое спасибо!!!

У меня как начинающему есть несколько вопросов, если позволите...
Как сделать так чтобы проверялся размер файла вложения при отправке, ведь если файл больше допустимого размера то он просто игнорируется, и когда это лучше делать перед отправкой или на сервере,
2.Как ограничить файлы вложения по типу, к примеру мне нужно чтобы файлы были только типа doc & rtf.

Был-бы очень признателен за помощь советом и/или скриптом.
Спасибо за понимание и поддержку.
С уважением, Андрей
Andry.Boris@gmail.com

Про проверку размера файла сходу ответить не смогу, по второму вопросу два варианта, выбирайте любой: <?
if(substr($_FILES['attachfile']['name'], -3) != 'rtf' AND substr($_FILES['attachfile']['name'], -3) != 'doc')
   echo
'Файл не подходит';
else {
        
// выполняем отправку
}

if(
$_FILES['attachfile']['type'] != 'application/octet-stream' AND $_FILES['attachfile']['type'] != 'application/msword')
   echo
'Файл не подходит';
else {
        
// выполняем отправку
}
?>


30.12.2007   viktor

Дорогой Автор!
Большое спасибо за скрипт !

Осталась только одна проблемкаю Плиз хелп!!! -
вот как бы сделать , чтобы данные введенные в форму (без вложений ) - приходили бы не только на указанный адрес электронной почты т.е. $mail->AddAddress('vasya@mail.ru', 'Имя'); // кому - адрес, Имя. А плюс к Этому приходило подтверждение на введенный $_POST['email']. логически попробовал поставить такой вариант:
require 'class.phpmailer.php';
$email[1]='client@vasya.com';
$email[2]='.$_POST['email'].';
$mail = new PHPMailer();
$mail->From = 'mailer@vasya.com';// от кого
$mail->FromName = ' X Mailer www.vasya.com'; // от кого
$email[1]->AddAddress('client@vasya.com', 'Client Support'); // кому - адрес, Имя
$email[2]->AddAddress('.$_POST['email'].','.$_POST['name'].'); // кому - адрес, Имя
$mail->IsHTML(true);// выставляем формат письма HTML
$mail->Subject = $_POST['title'];// тема письма

- но увы :)syntax error, unexpected T_STRING! Надо учить матчасть судя по всему :)

Очень прошу помочь...
С наступающим новым годом !
Всем успеха и здоровья !

И Вас с наступающим ;-) Попробуйте так: <?php
require 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->From 'mailer@vasya.com';// от кого
$mail->FromName ' X Mailer www.vasya.com'// от кого
$mail->AddAddress('client@vasya.com''Client Support'); // кому - адрес, Имя
$mail->AddAddress($_POST['email'],$_POST['name']); // кому - адрес, Имя
$mail->IsHTML(true);// выставляем формат письма HTML
$mail->Subject $_POST['title'];// тема письма
?>


28.12.2007   Reve

Замечательный скрипт, спасибо большое :)
У меня только одна проблема, не отправляются файлы большого размера... проблему искать на хостинге или есть какие-то ограничения на размер отправляемого письма?

проблему искать на хостинге. Cоздайте файл с кодом:
<?
phpinfo
();
?>

Запустите его и посмотрите upload_max_filesize

18.12.2011   Влад (evs-vladislav@ya.ru

Автору огромное спасибо, без этого скрипта не знал бы куда деваться.


Одна проблема осталась:
на сервере upload_max_filesize: и локал и мастер по 30M, а отправляются файлы только до 7 мб почему-то.
Пробовал и на gmail, и на yandex-почту - письма-то с большими вложениями они принимают, а с сайта больших файлов не отправить :(



11.12.2007   altamaster

Автору респект, уважуха и +100 к карме! ;)



09.11.2007   Коля

Есть тут кто или это сайт уже тока сам посебе существует?

я бываю иногда )) Но про captcha уже не отвечаю, надоело )) Посмотрите на captcha.ru


08.11.2007   Коля

ответьте пожалуста на моё мыло shikin_kolya@mail.ru. или в аську 550953 А как сделать генератора чисел (код подтверждения)вот как на данной формачке что я пишу?



06.11.2007   Дима

При отправке письма выдает вот какое сообщение: Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP"
and "smtp_port" setting in php.ini or use ini_set() in F:\apache\localhost\www\post.php on line 50
Че делать не знаю?!

настраивать апач...


06.11.2007   zedzeal

Здраствуйте! Подскажите, как сделать, чтобы на почту приходили поля, выбранные из select??



02.11.2007   Lesha

Скажите пожалуйста что именно надо поменять в файле class.phpmailer.php чтобы работало на хостинге?

Я ничего не менял, все работает.

08.05.2011   Sasha

Я меня на кодировку utf-8 потому что там стандартная не прошла



28.10.2007   petrov

Все,разобрался,еще раз респект тебе за скрипт и содействие!
Вот решение проблеммы для антифлуда в третьем варианте скрипта:
Меняем это:

// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo 'Спасибо! Ваше письмо отправлено.';
}

На вот это:

// отправляем наше письмо
$filename = "antiflood.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

if($contents != $mess){
$file = fopen("antiflood.txt", "w");
fputs ($file, $mess);
fclose ($file);
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
}
echo 'Спасибо! Ваше письмо отправлено.';
}

Зы: не забываем создать и положить в корень файл - antiflood.txt



28.10.2007   petrov

Огромное спасибо за ваше пояснение,но теперь письма не отправляются,а записываются в файл - antiflood.txt,что делать? (:



28.10.2007   petrov

Спасибо за скрипт,на фоне других - этот супер!
Для работы брал третий вариант,но вот вопрос,если в первом и втором варианте мне понятно,что и где заменить для избежания антифлуда,то к сожалению (в виду не знания пока хорошо пшп) в третьем варианте я не знаю,что и где заменить. Плиз дайте внятный хелп.
Заранее благодарен.

Меняйте все точно так же как и во втором примере. Ключевая строка:
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);


15.10.2007   Fratyr

Ув. Добрый день.
попробовал разные варианты, никак не выходит.
После отправления письма, нашел как возвращать форму, а как убрать эхо и самое главное (при обновлении страницы), высылается очередное письмо. т.е отправив первое, можно кликать Ф5 и спамить ящик. )
Можно поставить ограничения или каким-то образом убить повторные отправления? disable submit'а не помогает, и сессий тут нету с куками. %) прямо дилема. %)

Здравствуйте. Можно поискать в инете инфу по captcha и установить у своей формы проверочный код. Второй вариант - это посмотреть коменты ко второму примеру (от 09.02.2007 )


26.09.2007   partiz

Нашел информацию, ее можно добавить в пример.
для получения отчета о доставке сообщения
Return-Receipt-To: moey@po4ty.net
для получения отчета о прочтении сообщения
Disposition-Notification-To: moey@po4ty.net
X-Confirm-Reading-To: moey@po4ty.net
X-PMRQC: 1

спасибо )


26.09.2007   partiz

Как запросить подтверждение о доставке письма?
<br>Вот в отправке письма ничего сложного, если аттач есть - тоже не проблема... а как сделать, чтобы когда человек получал от меня письмо, то от него бы приходило подтверждение о доставке письма.



21.09.2007   Петр

А кто знает как сделать так, чтобы после вывода "ОШИБКА! ... " уже введенные в поля данне там же и остались?



09.09.2007   Женя

Здравствуйте.
как можно сделать $_POST['submit'], только вместо 'submit' вставить переменную $F??



05.09.2007   Константин

Подскажите почему не работают ни ограничения по количеству введёных символов, ни абзацы при получении писем, html тоже не работает, а написано, что работает.

Подскажите, как сделать, чтобы работало?



03.09.2007   Константин

Да, и ещё, ограничение по количеству введённых в форму символов не дейчтвует...



03.09.2007   Константин

Да, сейчас попробовал сам скрипт без кода форм переместить в самый низ, перед закрытием body. Теперь при ошибках страница отображается полность, нормально, но теперь, после отправления страница обрезается после слов:

"сообщение отправлено".

Что можно сделать ещё, подскажите. Уж больно хорош скрипт. Спасибо!



03.09.2007   Константин

Во-первых огромное Вам спаси, дорогой Вы наш. Просто отличная работа. Премного благодарен. Всё понятно даже мне. =)))

Всё отправляется, получается и читается в лучшем виде. Только вот какой-то глюк, не знаю что это, может кто подскажет. Если возникает какая-нибудь ошибка, там имя не введено или email, страница обрезается по конец скрипта. Т.е. страница не загружается(обрывается) дальше ниже этой строки:

"* Помечены поля, которые необходимо заполнить".

Заранее благодарю за помощь. И ещё раз спасибо за труд!



03.09.2007   Валентин

вообще все класс все работает с первого раза



03.09.2007   Валентин

как поставить высокий приоритет



30.08.2007   Котя

Народ, а если у меня в форме число вводимых полей каждый раз разное (например: выводится в форму каждый раз выбранный каталог с товарными позициями, (напротив которых вводится количество заказа товара) из списка каталогов, каталогов много и количество товарных позиций в них разное)? Как такую форму обработать одним файлом?

Сгенерируй форму генератором и посмотри код. Там же тоже кол-во полей от случая к случаю меняется ))


08.08.2007   Арсен

>ну почему у меня не работает :/
>у меян стоИт денвер, мои действия

у денвера существует заглушка, в которую sendmail запихивает все исходящие письма и с радостью сообщает, что mail вернула true (в реальности оно никуда их не отправляет). Поищи свои письма в папке */WebServer/tmp/!sendmail/*.eml



18.07.2007   Александр

Если я хочу прикрепить к письму файл, но не тот который на моей машине, о тот что в нете висит, независимо это архив или картинка с указанием адреса.
к примеру
http://www.php-mail.ru/i/php-mail_03.jpg
http://www.php-mail.ru/class.phpmailer.zip
как это реализовать



18.07.2007   Слава

Если я хочу прикрепить к письму несколько файлов?



12.07.2007   noob2007

ну почему у меня не работает :/
у меян стоИт денвер, мои действия
1 закидываю class.phpmailer.php, который скачал по ссылке
2 закидываю index.php с кодом
3 в етом коде радактирую код

// подключаем файл класса для отправки почты
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->From = 'test@test.ru'; // от кого
$mail->FromName = 'xocmep-ru@yandex.ru'; // от кого
$mail->AddAddress('xocmep-ru@yandex.ru', 'Толик'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = $_POST['title']; // тема письма

пишу письмо, файлы не прикрепляю, отправляю, все нармально (Спасибо! Ваше письмо отправлено.)
а письма не приходят на xocmep-ru@yandex.ru :((((
что не так я сделал/не сделал... :(((



06.07.2007   evgeny

спасибо за понятные объяснения.
есть вопрос: а как реализовать отправку по нескольким адресам в цикле. Т.е. не просто добавляя AddAddress с новым получателем, а что-то типа рассылки.

Варинатов полно, можно попробовать так:
<?php
// подключаем файл класса для отправки почты
require 'class.phpmailer.php';
$email[]='1@test.ru';
$email[]='2@test.ru';
$email[]='3@test.ru';
for (
$i=0; $i<count($email); $i++) {
        
$mail = new PHPMailer();
        
$mail->From = 'test@test.ru';      // от кого
        
$mail->FromName = 'Злостный спамер';   // от кого
        
$mail->AddAddress($email[$i], $email[$i]); // кому - адрес, Имя
        
$mail->IsHTML(true);        // выставляем формат письма HTML
        
$mail->Subject = 'тема письма';  // тема письма
        
$mail->Body = 'Вас приветствует спам рассылка<br><br>ку-ку';

        
// отправляем наше письмо
        
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
        echo
'Письмо отправлено на <a href="mailto:">'.$email[$i].'</a><br>';
}
?>


30.06.2007   kelvin

у меня через http://......?id=sp сделано.
в action соответственно="?id=sp"
а там:
<?php
$ID_Value=TRUE; # вставляем форму
if(isset($_GET["id"])===TRUE){
$id=$_REQUEST['id'];
if($id=='sp'){
include "sp.php";
} }else{
include "content.php";
}
?>



29.06.2007   kelvin

После отправки* не показывает ничего.
в html, судя по всему, сразу как начинается php - пусто.
нет сообщения, только top.php и обрыв.



25.06.2007   Dmitry

izvine, ne sovsem ponyam, kak budet viglyadet' kod?



23.06.2007   Dmitry

Site prosto SUPER!!! Spasibo ogromnoe. Est' odin vopros: kak sdelat' chto bi posle zapolneniya formi vidavalo soobchenie ne v etom zhe okne, a uvodilo na druguu stranicu sita?

naprimer na www.somesite.com/index.html a ne:

echo '<table height="100%" width="100%"><tr><td align="center">Thank you for your interest, we look forward to meeting you.</td></tr></table>';
show_form();

как вариант в show_form(), в action прописать имя того самого файла(<form action="имя файла(druguu stranicu sita)"). А в файл засунуть весь код обработки


22.06.2007   Люба

Где Вы!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Сейчас на Ленинском проспекте, дом 123... это где-то в Москве.


22.06.2007   Люба

И еще данный пример предпологает только окна где написано "Обзор", а прикрепился сам файл или нет такого нет?



22.06.2007   Люба

Он уже сохранен

что-то мне подсказывает, что Ваш хостинг не поддерживает php, хотя я могу ошибаться )


22.06.2007   Люба

У меня это вылезло на сайте, после того как я загрузила третий пример. Почему у меня после всех окон
<br>вылезает эти карабяки?
<br>Имя*
<br>
<br>Контактный телефон
<br>
<br>Контактный email*
<br>
<br>Teма
<br>
<br>Сообщение*
<br>
<br>Файл
<br>
<br>Изображение
<br>
<br>
<br>
<br>* Помечены поля, которые необходимо заполнить Контактный телефон:\'.$_POST[\'tel\'].\'
<br>Контактный email:\'.$_POST[\'email\'].\'
<br>\'.$_POST[\'mess\']; // подключаем файл класса для отправки почты require \'class.phpmailer.php\'; $mail = new PHPMailer(); $mail-&gt;From = \'test@test.ru\'; // от кого $mail-&gt;FromName = \'www.php-mail.ru\'; // от кого $mail-&gt;AddAddress(\'to@yandex.ru\', \'Имя\'); // кому - адрес, Имя $mail-&gt;IsHTML(true); // выставляем формат письма HTML $mail-&gt;Subject = $_POST[\'title\']; // тема письма // если был файл, то прикрепляем его к письму if(isset($_FILES[\'attachfile\'])) { if($_FILES[\'attachfile\'][\'error\'] == 0){ $mail-&gt;AddAttachment($_FILES[\'attachfile\'][\'tmp_name\'], $_FILES[\'attachfile\'][\'name\']); } } // если было изображение, то прикрепляем его в виде картинки к телу письма. if(isset($_FILES[\'attachimage\'])) { if($_FILES[\'attachimage\'][\'error\'] == 0){ if (!$mail-&gt;AddEmbeddedImage($_FILES[\'attachimage\'][\'tmp_name\'], \'my-attach\', \'image.gif\', \'base64\', $_FILES[\'attachimage\'][\'type\'])) die ($mail-&gt;ErrorInfo); $mess .= \'А вот и наша картинка:
<br>
<br>я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) \'; } } $mail-&gt;Body = $mess; // отправляем наше письмо if (!$mail-&gt;Send()) die (\'Mailer Error: \'.$mail-&gt;ErrorInfo); echo \'Спасибо! Ваше письмо отправлено.\'; } function output_err($num) { $err[0] = \'ОШИБКА! Не введено имя.\'; $err[1] = \'ОШИБКА! Неверно введен e-mail.\'; $err[2] = \'ОШИБКА! Не введено сообщение.\'; echo \'
<br>\'.$err[$num].\'
<br>
<br>\'; show_form(); exit(); } if (!empty($_POST[\'submit\'])) complete_mail(); else show_form(); ?&gt;

сохраните файл с расширением *.php


21.06.2007   Andrey

Спасибо! Очень хорошая статья.



20.06.2007   Жорж

Может, я не первый, но попрошу:
<br>выложи плиз добавочку к чкрипту для кода поддтверждения, как вот этот скрипт отправки, которым доставлена эта мессага.
<br>а то понимаешь три варианта, но ни в одном нет того, что у тебя у самого действует на сайте.

я не сам писал, нарыл где-то в инете, ща ссылк не найду. Поищите по запросу "captcha" (кстати, как пример http://captcha.ru/)


19.06.2007   Jar

А можно целую систему по отправке е-майла сделать



07.06.2007   Ladanka

Большое спасибо за такое подробное объяснение. У меня такая проблема: если я отправляю с прикрепленными файлами формата txt, то и приходит в формате txt. Но попробовал присоединить в формате doc, а пришло в формате doc.safe (как будто от чего то обезопасили). Изза чего может такое происходить?
<br>
<br>Заранее благодарю за помощь!



04.06.2007   Денис

Хочу выразить огромную благодарность администратору этого сайта. Побольше бы таких людей.



04.06.2007   ivan

Language string failed to load - это что за штука?



04.06.2007   Прохожий

Ну ты, Серёга 03.06.2007 даёшь! Мало того - халява, так подать сюда в наилучшем виде! А самому почитать посты - слабо?! Народ ставит и юзает (я тоже поставил!). Разжёвано - донельзя! Имей уважение к автору!



03.06.2007   Серега

Ни че не работает. Открывает пустую страницу. Почему в 5 строке у тебя action пустой? Выложи рабочую пример-страницу. (запускной файл index и все прилагающаяся к нему ерунда), Что не копировать это от туда в ставить туда.



25.05.2007   Сергей

Я сам пользуюсь The Bat и там все хорошо… но вот многие пользуются Outlook’ом и если там поставить кодировку как вы писали в прошлых примерах…

$from='test@test.ru';
$headers = 'From: '.$from . "\r\n" .
'Content-type: text/plain; charset="windows-1251"' . "\r\n";
mail($to, $_POST['title'], $mess, $headers);

То кодировка Outlook’ом не воспринимается… А вот если убрать From и оставить кодировку.. то все ок! Но все же поле фром необходимо…

Если кто-то может нормально выставить кодировку что бы читалась Outlook’ом напишите пожалуйста сюда… как это сделать…


12.04.2011   Олег

Используя класс class.phpmailer.php, для смены кодировки достаточно в обработчике после строки $mail = new PHPMailer(); добавить строку с указанием кодировки, например так: $mail->CharSet = "UTF-8";



16.05.2007   Антон

А если есть необходимость _отложенной_ отправки письма, то есть, не заставлять пользователя пялиться на экран, пока уходит письмо (или письма) - например, когда со страницы форума в фоновом режиме уходят оповещения о новых сообщениях, - есть ли какое-нибудь изящное решение?



02.05.2007   Александр

Со второй и всеми последующими картинками разобрался, спасибо! А как поменять конструкцию AddAttachment и AddEmbeddedImage для того, что б файл(-ы) и картинку(-ки) брать не с локального компа, каждый раз закачивая их, а положить их рядышком на сайт и брать по мере необходимости, заранее прописав их имена и пути в скрипте? Заранее спасибо!

<?
$path
= './i/kartinka24.jpg'; // путь к картинке
if (!$mail->AddEmbeddedImage($path, 'my-attach', 'image.jpg', 'base64', 'image/jpeg'))
        die (
$mail->ErrorInfo);
$mess = '<b>Изображение:</b><br><img src="cid:image.jpg" border=0>';
?>


01.05.2007   Денис

У меня все работает но вот нельзя ли сделать чтобы после отправки данных формы сама форма не исчезала, меняясь на надпись "Спасибо! Ваше письмо отправлено". Хорошо бы чтобы эта надпись появлялась внизу или вверху формы.
С уважением, Денис.

строку
echo 'Спасибо! Ваше письмо отправлено.';
замените на
echo 'Спасибо! Ваше письмо отправлено.';
show_form();


27.04.2007   Александр

Скачал-установил-заработало: Ура! Спасибо большое!
Но сразу захотелось прикреплять картинок более одной. :)
Не подскажете, как ввести изменения, что б прикреплять можно было и одно, и два, и более изображений?

Добавляйте формы для изображений:
<br />Изображение 2<br /> <input name="attachimage2" type="file" size="28">
И обработку:
if(isset($_FILES['attachimage2'])) {
                 if(
$_FILES['attachimage2']['error'] == 0){
                    if (!
$mail->AddEmbeddedImage($_FILES['attachimage2']['tmp_name'], 'my-attach2', 'image2.gif', 'base64', $_FILES['attachimage2']['type']))
                         die (
$mail->ErrorInfo);
                    
$mess .= 'А вот и наша вторая картинка:<br /><img src="cid:image2.gif" border=0>';
                 }
        }


22.04.2007   doki

Огромное спасибо. Скинул на хостинг, поменял настройки в 'class.phpmailer.php' и все прекрасно работает. Побольше бы таких хороших и понятных статей и авторов.



16.04.2007   Сергей

Все заработало. И картинка пришла и файл. Спасибо большое. Очень помогли в решении вопроса.



16.04.2007   Сергей

Скачал файл. Все нормально. Получается теперь, что картинка пришла, а файла другого нет.



16.04.2007   Сергей

Уменя выдает ошибку в 61 строке. Вот сама строка: require 'class.phpmailer.php';
А вот, что пишет Warning: require(class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in /home/webdd/domains/web-dd.com/public_html/1/index.php on line 61

Fatal error: require() [function.require]: Failed opening required 'class.phpmailer.php' (include_path='.:/usr/local/lib/php') in /home/webdd/domains/web-dd.com/public_html/1/index.php on line 61

Не находит файл, который мы подключаем. Вот ссылка: class.phpmailer.zip - не забудьте разархивировать ;-)


27.03.2007   Phantom

Что-то не работает эта отправка... Я копировал этот текст, отредактировал очень внимательно, вставил свой е-mail, а при запуске пишет ошибку в сто-какой-то строке... Что это? По-моему с if где-то ошибка...

пишите код строки с ошибкой и пару строк до и после, глянем, поможем ;-)

(c) Janda.ru