Здравствуй Тостер!
Пытаюсь отправить вложение(pdf файл на почту) обычным php.
Нашел код в инете и написал функцию
public static function sendEmailInvoicePdf($filename, $email)
{
$name = "Название здесь идет";
$to = "$name <$email>";
$from = "Вася";
$subject = "Тема";
$mainMessage = "Привет,я сообщение с pdf файлом";
$fileatt = $filename; // Расположение файла
$fileatttype = "application/pdf";
$fileattname = "test.pdf"; //Имя, которое вы хотите использовать для отправки, или вы можете использовать то же имя
$headers = "From: $from";
// Открываем и читаем файл в переменную.
$file = fopen($fileatt, 'rb');
$data = fread($file, filesize($fileatt));
fclose($file);
// Это прикрепляет файл
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$message = "Это multi-part сообщение в формате MIME․\n\n" .
"-{$mime_boundary}\n" .
"Content-Type: text/html; charset=\"utf-8 \n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$mainMessage . "\n\n";
$data = chunk_split(base64_encode($data));
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatttype};\n" .
" name=\"{$fileattname}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileattname}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"-{$mime_boundary}-\n";
// Отправить письмо
if(mail($to, $subject, $message, $headers))
{
echo "Письмо отправлено.";
} else {
echo "При отправке почты произошла ошибка.";
}
}
Вообщем на яндекс почту приходит валидный pdf, $subject(тема письма) тоже отображается, а вот тело сообщения не отображается.
На мэил.ру вообще не приходит письмо.
На аутлук приходят кракозябры и файл pdf не открыть - пишет ошибку, тип корявый pdf.
Фреймворк почтовый что-ли использовать или у меня какие-то ошибки?