Почему файл не отправляется php?

$msg = "message";
    $file = 'https://site.ru/assets/templates/images/4.png';
    $file_size = filesize($file);
    $handle = fopen($file, "r");

    $content_attachment = fread($handle, $file_size);
    $type = mime_content_type($file);
    
    fclose($handle);
    
    $content_attachment = chunk_split(base64_encode($content_attachment));
    $uid = md5(uniqid(time()));
    $name = basename($file);
    
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n"; // multipart/mixed
    // $headers .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
    $headers .= "From: ".$_SERVER['HTTP_HOST']." <site@".$_SERVER['HTTP_HOST'].">\r\n";
    
    $content = "This is a multi-part message in MIME format.\r\n\r\n";
    $content .= "--".$uid."\r\n";
    $content .= "Content-Type:text/html; charset=utf-8\r\n";
    $content .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
    $content .= $msg."\r\n\r\n";
    $content .= "--".$uid."\r\n";
    $content .= "Content-Type: $type; name=\"".$filename."\"\r\n"; 
    $content .= "Content-Transfer-Encoding: base64\r\n\r\n";
    $content .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    $content .= $content_attachment."\r\n\r\n";
    $content .= "--".$uid."--";
    
    mail($emails,"$title $site_name {$_POST['forma']}", $content, $headers);
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
gscraft
@gscraft
Программист, философ
Причин может быть несколько, от неработающей в силу настроек хостинга mail(...), до ошибки в заголовках или в теле запроса, при этом Вы не приводите ошибки, и нет возможности воспроизвести Ваш опыт в целом. Проще всего избежать ошибки, и это правильный путь, воспользоваться одной из библиотек, как автоматизирующей построение тела/заголовков запроса, так и позволяющей работать с SMTP напрямую. Посмотрите на packagist.org , например, пакеты nette/mail , zendframework/zend-mail , swiftmailer/swiftmailer . Если не работали с composer, непременно стоит с ним разобраться: getcomposer.org
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы