Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Отправка писем с аттачментами (пример) (Антон Макаренко, оценка: 8)
Goto page Previous  1, 2
Author Message
markers
Заглянувший



Joined: 13 Feb 2008
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Wed Feb 13, 2008 10:41 pm (написано за 6 минут 32 секунды)
   Post subject:
Reply with quote

По поводу предедущего поста, похоже косяки не скрипта.... по крайней мере по логам.
Ещё, пришлось немного усовершенствовать скрипт, чтобы была возможность использовать аттачмент в HTML, например картинки
Правки в файле: letter.class.php
Code (php): скопировать код в буфер обмена
        /**
         * Attach a file by local path or URL
         *
         * To load attachment by URL, the php.ini "allow_url_fopen" should be enabled
         *
         * @param string $filename_or_url
         * @param string $mime_type
         * @param string $attached_filename
         * @return bool
         */

        function attach_file($filename_or_url, $mime_type='application/octet-stream', $attached_filename=null, ->$ShowInHtml=False)
        {
                $contents=@file_get_contents (www.php.net/file_get_contents)($filename_or_url);
                if (empty (www.php.net/empty)($contents))
                        return false;
                if (empty (www.php.net/empty)($attached_filename))
                        $attached_filename=basename (www.php.net/basename)($filename_or_url);
                return $this->attach_contents($contents, $mime_type, $attached_filename, ->$ShowInHtml);
        }

        /**
         * Attach contents to the letter
         *
         * @param string $contents
         * @param string $mime_type
         * @param string $attached_filename
         * @return bool
         */

        function attach_contents($contents, $mime_type, $attached_filename, ->$ShowInHtml=False)
        {
                $contents=@(string)$contents;
                if (empty (www.php.net/empty)($contents))
                        return false;
                $attached_filename=@trim (www.php.net/trim)($attached_filename);
                if (empty (www.php.net/empty)($attached_filename))
                        return false;
                $attach=
                        "Content-Type: $mime_type; name=\"$attached_filename\"\r\n".
                       ->($ShowInHtml ? "Content-ID: <$attached_filename>\r\n" : "").
                        "Content-Transfer-Encoding: base64\r\n".
                        "Content-Disposition: attachment; filename =\"$attached_filename\"\r\n\r\n".
                        chunk_split (www.php.net/chunk_split)(base64_encode (www.php.net/base64_encode)($contents));
                // repeating attachments filenames will be replaced
                $this->attachments[$attached_filename]=$attach;
                return true;
        }
Использование:
 Вложение:
Code (php): скопировать код в буфер обмена
$mailer->letter->attach_file("img.gif", "image/gif","img.gif", True);
В теле сообщения:
Code (html): скопировать код в буфер обмена
<img (december.com/html/4/element/img.html) src="cid:img.gif"> (december.com/html/4/element/.html)
Если нужно вложить простое вложение (без использования его в HTML)
Code (php): скопировать код в буфер обмена
$mailer->letter->attach_file("1.txt", "text/plain","1.txt", False);
Back to top
View user's profile Send private message
Антон Макаренко
Участник форума



Joined: 05 Feb 2004
Posts: 374
Карма: 31
   поощрить/наказать

Location: Киев

PostPosted: Thu Feb 28, 2008 6:31 pm (спустя 14 дней 19 часов 50 минут; написано за 1 минуту 53 секунды)
   Post subject:
Reply with quote

По секрету скажу, что сам пользуюсь куда более развитой версией библиотеки (она написана уже только для php5). Пока еще не решаюсь ее выложить, потестировать хочу.
Quote:
В теле сообщения
В таком случае content-disposition надо указывать "inline".
Back to top
View user's profile Send private message Send e-mail
markers
Заглянувший



Joined: 13 Feb 2008
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Sun Mar 02, 2008 9:27 am (спустя 2 дня 14 часов 56 минут; написано за 19 секунд)
   Post subject:
Reply with quote

Антон Макаренко
Вообще да, но как показала практина и без неё пашет :)
Back to top
View user's profile Send private message
Недоученый
Guest





Карма: 387
   поощрить/наказать


PostPosted: Tue Apr 15, 2008 1:56 am (спустя 1 месяц 12 дней 16 часов 28 минут; написано за 47 секунд)
   Post subject:
Reply with quote

Не долетают письма до директории \tmp\!sendmail что не так в скрипте???
<html>
<body BACKGROUND=fon.jpg>
<div align=center>
    <?php
if ((empty($_GET['surnameuser'])) || (empty($_GET['nameuser'])) || (empty($_GET['otchestvo'])) || (empty($_GET['city'])) || (empty($_GET['street']))|| (empty($_GET['home'])) || (empty($_GET['room']))) /*здесь должна была быть реализована проверка на заполненность всех полей, но почему то получается бред. Возможно ошибки в "И" или в "ИЛИ".*/{
          echo('<font color=gray><h1>Заполните заявку на заказ:</font></h1>');
}else{
$subject = "Заказ от ".$_GET['surnameuser']." ".$_GET['nameuser']." ".$_GET['otchestvo'];
$msg .= $_GET['surnameuser']."\n";#слепляем сообщение из переменных переданных с помощью метода POST
$msg .= $_GET['nameuser']."\n";#$_GET['имя поля в хтмл которое задается параметром name'];
$msg .= $_GET['otchestvo']."\n";#точка после переменной в присваивании делает слепление данных переменной и простого текста
$msg .= $_GET['city']."\n";
$msg .= $_GET['street']."\n";
$msg .= $_GET['home']."\n";
$msg .= $_GET['room']."\n";
$msg .= $_GET['additional']."\n";
echo ("<font color=gray>Your message is:<br>".$msg);
echo ("<font color=gray><h2><p><p>Спасибо! Ваш заказ будет рассмотрен<br> в близжайшее время нашими операторам!</font></h2>");
exit(1);
mail("tj1@yandex.ru", $subject, $msg, join("\r\n", array("From: tj1@yandex.ru","Reply-to:tj1@yandex.ru","Content-type: text/plain;charset=windows-1251","X-Mailer: PHP/".phpversion())));#собственной персоной - функция mail() с доп параметрами
}
?>
<br><font color=gray>
<FORM action="mailer.php" method="get" name="second">
<li>Фамилия<INPUT type= "text" name="surnameuser" maxlength="40" size="20" value=""><p>
<li>Имя<INPUT type= "text" name="nameuser" maxlength="40" size="20" value=""><p>
<li>Отчество<INPUT type= "text" name="otchestvo" maxlength="40" size="20" value=""><p>
<li>Город<INPUT type= "text" name="city" maxlength="40" size="20" value=""><p>
<li>Улица<INPUT type= "text" name="street" maxlength="40" size="20" value=""><p>
<li>Дом<INPUT type= "text" name="home" maxlength="40" size="20" value=""><p>
<li>Квартира<INPUT type= "text" name="room" maxlength="40" size="20" value=""><p>
Номера заказываемых CD(введите через запятую):<BR>
<TEXTAREA name="additional" cols="40" rows="5">
</TEXTAREA><p>
<INPUT type="submit" value=">>Отправить<<">
</FORM>
</body>
</html>
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 270
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Apr 15, 2008 11:10 pm (спустя 21 час 13 минут; написано за 26 секунд)
   Post subject:
Reply with quote

Недоученый wrote:
exit(1);
?

и будьте любезны оформлять код - тут есть все средства для этого
Back to top
View user's profile Send private message
Недоученый
Guest





Карма: 387
   поощрить/наказать


PostPosted: Wed Apr 16, 2008 12:10 pm (спустя 13 часов; написано за 29 секунд)
   Post subject:
Reply with quote

Ой спасибо вам большое!
Back to top
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9993
   поощрить/наказать


PostPosted: Wed Jul 01, 2009 6:35 pm (спустя 1 год 2 месяца 15 дней 6 часов 24 минуты)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «кросспостинг»,
расположенную в форуме Мусоропровод (01 Июля 2009, 19:34).
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9993
   поощрить/наказать


PostPosted: Thu Jul 02, 2009 5:20 am (спустя 10 часов 45 минут)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «мусор»,
расположенную в форуме Мусоропровод (02 Июля 2009, 06:20).
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Goto page Previous  1, 2
Page 2 of 2    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML