За последние 24 часа нас посетили 17608 программистов и 1310 роботов. Сейчас ищут 987 программистов ...

Письмо с вложением

Тема в разделе "Работа с почтой", создана пользователем staNisalv, 4 апр 2009.

  1. staNisalv

    staNisalv Активный пользователь

    С нами с:
    4 апр 2009
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте, у меня такая проблема, при отправки письма с вложением ошибок не возникает, но письмо на ящик не приходит, причем если вложение <=5 кб то письмо приходит.. может у хостера что-то не то?

    вот скрипт который использую:



    Код (Text):
    1.  
    2. <?php
    3.  
    4.   $picture = "";
    5.   $path= "v1.gif";
    6.   $picture = $path;
    7.  
    8.   $thm = "Просто тема";
    9.   $msg=" <body> <b> Это проверка</b> <br>
    10.  
    11.   <img src='$picture' ><br><li>Строка 1<li>Строка 2<li>Строка 3</body>";
    12.  
    13.   $mail_to ="мыло";
    14.  
    15.  
    16. // Отправляем почтовое сообщение
    17.   if(empty($picture)) mail($mail_to, $thm, $msg);
    18.  
    19. else send_mail($mail_to, $thm, $msg, $path);
    20.  
    21.  
    22. // Вспомогательная функция для отправки почтового сообщения с вложением
    23.   function send_mail($to, $thm, $html, $path)
    24.   {
    25.     $fp = fopen($path,"r");
    26.     if (!$fp)
    27.     {
    28.       print "Файл $path не может быть прочитан";
    29.       exit();
    30.     }
    31.     $file = fread($fp, filesize($path));
    32.     fclose($fp);
    33.    
    34.     $boundary = "--".md5(uniqid(time())); // генерируем разделитель
    35.     $headers .= "MIME-Version: 1.0\n";
    36.     $headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
    37.     $multipart .= "--$boundary\n";
    38.     $kod = 'windows-1251';
    39.     $multipart .= "Content-Type: text/html; charset=$kod\n";
    40.     $multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
    41.     $multipart .= "$html\n\n";
    42.     $message_part = "--$boundary\n";
    43.     $message_part .= "Content-Type: image/gif\n";
    44.     $message_part .= "Content-Transfer-Encoding: base64\n";
    45.     $message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
    46.     $message_part .= chunk_split(base64_encode($file))."\n";
    47.     $multipart .= $message_part."--$boundary--\n";
    48.  
    49.     if(!mail($to, $thm, $multipart, $headers))
    50.     {
    51.       echo "К сожалению, письмо не отправлено";
    52.       exit();
    53.     }
    54.   }
    55. ?>
    Спасибо
     
  2. staNisalv

    staNisalv Активный пользователь

    С нами с:
    4 апр 2009
    Сообщения:
    2
    Симпатии:
    0
    попробывал другой вариант скрипта возвращает мне ошибку если вложенный файл больше 5 кб

    Код (Text):
    1.  
    2. Mailer Error: Language string failed to load: instantiate
    Что это значит?