DenisKarakchiev
9/6/2017 - 11:26 AM

function to attach files to email #php

function to attach files to email #php

function sendPriceClient($emailClient, $filename)
{

    $subject = 'some subject text here';
    $message = "some messsage text here<br/>";

    $path = __DIR__ . '/' . $filename;

    $fp = fopen($path, "rb");
    if (!$fp) {
        print "Cannot open file";
        exit();
    }
    $file = fread($fp, filesize($path));
    fclose($fp);

    $EOL = "\r\n"; // ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    $boundary = "--" . md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.
    $headers = "MIME-Version: 1.0;$EOL";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
    $headers .= "From: fitinflat.ru <no-reply@fitinflat.ru>";

    $multipart = "--$boundary$EOL";
    $multipart .= "Content-Type: text/html; charset=utf-8$EOL";
    $multipart .= "Content-Transfer-Encoding: base64$EOL";
    $multipart .= $EOL; // раздел между заголовками и телом html-части
    $multipart .= chunk_split(base64_encode($message));

    $multipart .= "$EOL--$boundary$EOL";
    $multipart .= "Content-Type: application/octet-stream; name=\"$filename\"$EOL";
    $multipart .= "Content-Transfer-Encoding: base64$EOL";
    $multipart .= "Content-Disposition: attachment; filename=\"$filename\"$EOL";
    $multipart .= $EOL; // раздел между заголовками и телом прикрепленного файла
    $multipart .= chunk_split(base64_encode($file));

    $multipart .= "$EOL--$boundary--$EOL";

    mail($emailClient, $subject, $multipart, $headers);
}