Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 19:53   #1
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию Отправка письма с вложением

Здравствуйте.

У меня проблема с отправкой писем, причем он прекрасно работает если файл весит не больше 5 кб, если больше пишет "письмо не отправлено" в чем тут может быть дело?

Скрипт нашел где-то в сети, не много передалал под себя а именно убрал загрузку пользователем.

Код:
<?php 

  $picture = ""; 
  $path= "v1.gif";
  $picture = $path;
 
  $thm = "Просто тема";
  $msg=" <body> <b> Это проверка</b> <br>
 
  <img src='$picture' ><br><li>Строка 1<li>Строка 2<li>Строка 3</body>";

  $mail_to ="мыло";
  

// Отправляем почтовое сообщение 
  if(empty($picture)) mail($mail_to, $thm, $msg); 
  
else send_mail($mail_to, $thm, $msg, $path); 


// Вспомогательная функция для отправки почтового сообщения с вложением 
  function send_mail($to, $thm, $html, $path) 
  { 
    $fp = fopen($path,"r"); 
    if (!$fp) 
    { 
      print "Файл $path не может быть прочитан"; 
      exit(); 
    } 
    $file = fread($fp, filesize($path)); 
    fclose($fp); 
    
    $boundary = "--".md5(uniqid(time())); // генерируем разделитель 
    $headers .= "MIME-Version: 1.0\n"; 
    $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; 
    $multipart .= "--$boundary\n"; 
    $kod = 'windows-1251';
    $multipart .= "Content-Type: text/html; charset=$kod\n"; 
    $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"; 
    $multipart .= "$html\n\n"; 
    $message_part = "--$boundary\n"; 
    $message_part .= "Content-Type: image/gif\n"; 
    $message_part .= "Content-Transfer-Encoding: base64\n"; 
    $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"; 
    $message_part .= chunk_split(base64_encode($file))."\n"; 
    $multipart .= $message_part."--$boundary--\n"; 

    if(!mail($to, $thm, $multipart, $headers)) 
    { 
      echo "К сожалению, письмо не отправлено"; 
      exit(); 
    } 
  } 


?>
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 06.04.2009, 13:44   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

ребят спасибо не актуально, получил ответ от хостера, что через mail не получиться, и сказал что отправлять нужно через smtp, если кому нужно могу поделиться-с примерами... http://phpmailer.sourceforge.net (это не реклама)
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отправка письма joker Win Api 0 14.02.2009 10:46
Microsoft Office Outlook :проблемы с вложением Vitter Софт 1 12.06.2008 11:05
Отправка письма Ксеноцид PHP 1 07.05.2008 15:57
Отправка письма с помощью TidSmtp... Teen4jump Работа с сетью в Delphi 8 31.08.2007 01:12