Мне нужно отправить PDF с почтой, это возможно?
$to = "xxx";
$subject = "Subject" ;
$message = 'Example message with <b>html</b>';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: xxx <xxx>' . "\r\n";
mail($to,$subject,$message,$headers);
Чего мне не хватает?
mail()
функцией намного сложнее, чем вы ожидаете, ради вашего времени, попробуйте использовать PHPMailerОтветы:
Я согласен с @MihaiIorga в комментариях - используйте скрипт PHPMailer. Похоже, вы отвергаете это, потому что вы хотите более простой вариант. Поверьте мне, PHPMailer является более простым вариантом с очень большим отрывом по сравнению с попыткой сделать это самостоятельно с помощью встроенной
mail()
функции PHP .mail()
Функция PHP на самом деле не очень хорошая.Чтобы использовать PHPMailer:
require_once('path/to/file/class.phpmailer.php');
Теперь отправка электронных писем с вложениями становится невероятно сложной и невероятно простой:
Это всего лишь одна строка
$email->AddAttachment();
- вы не могли бы попросить немного проще.Если вы сделаете это с помощью
mail()
функции PHP , вы будете писать стопки кода, и у вас, вероятно, будет много действительно трудных для поиска ошибок.источник
mail()
, но для работы с вложениями это совершенно не сложно.mail()
функцию для добавления вложений. Этот ответ не поможет мне сделать это.Вы можете попробовать использовать следующий код:
Изменить 14 июня 2018 года
для большей читабельности при использовании электронной почты
$body .= $eol . $message . $eol . $eol;
и$body .= $eol . $content . $eol . $eol;
источник
'Example message with <b>html</b>'
, что Content-Type должен быть,text/html
а неtext/plain
. Я публикую комментарий от его имени, так как у него недостаточно представителей, чтобы оставлять комментарии, и я пометил ответ для удаления.$file
после ссылки на это в$filename
?Для PHP 5.5.27 обновление безопасности
источник
$nmessage .= "--".$uid."\r\n";
и после последней части MIME$nmessage .= "--".$uid."--";
(как показано выше).Swiftmailer - это еще один простой в использовании скрипт, который автоматически защищает от внедрения электронных писем и упрощает вложения. Я также настоятельно не рекомендую использовать встроенную
mail()
функцию PHP .Использовать:
lib
папку в свой проектrequire_once 'lib/swift_required.php';
Теперь добавьте код, когда вам нужно на почту:
Дополнительную информацию и опции можно найти в Документах Swiftmailer .
источник
Чтобы отправить электронное письмо с вложением, нам нужно использовать MIME-тип multipart / mixed, который указывает, что смешанные типы будут включены в электронное письмо. Кроме того, мы хотим использовать многочастный / альтернативный тип MIME для отправки как электронной, так и текстовой версии электронной почты. Посмотрите на пример:
Как вы можете видеть, отправка электронного письма с вложением очень проста. В предыдущем примере мы имеем составной / смешанный тип MIME, а внутри него мы имеем составной / альтернативный тип MIME, который определяет две версии письма. Чтобы включить вложение в наше сообщение, мы читаем данные из указанного файла в строку, кодируем их с помощью base64, разделяем их на более мелкие куски, чтобы убедиться, что они соответствуют спецификациям MIME, а затем включаем их в качестве вложения.
Взято отсюда .
источник
Это работает для меня. Он также прикрепляет несколько вложений тоже. без труда
источник
Поработав некоторое время с плохо отформатированными вложениями, я использовал следующий код:
источник
Рабочая концепция:
источник
Ни один из приведенных выше ответов не работал для меня из-за указанного ими формата вложения (
application/octet-stream
). Используйтеapplication/pdf
для достижения наилучших результатов с файлами PDF.источник
"From: $from$eolMIME-Version: 1.0$eol"
на"From: $from" . "$eolMIME-Version: 1.0$eol"
$eol
с" . "$eol
таким образом его все сделано в один мах.источник
HTML-код:
PHP-код:
источник
Я написал свою собственную функцию отправки / кодирования электронной почты. Это хорошо сработало для отправки PDF-вложений. Я не использовал другие функции в производстве.
Примечание: Несмотря на то, что спецификация довольно решительная, что вы должны использовать \ r \ n для разделения заголовков, я обнаружил, что это работает только тогда, когда я использовал PHP_EOL. Я только что проверил это на Linux. YMMV
источник
Копирую код с этой страницы - работает в почте ()
Он начинает с создания функции mail_attachment, которую можно вызвать позже. Что он делает позже со своим кодом вложения.
Он имеет больше деталей на своей странице и отвечает на некоторые проблемы в разделе комментариев.
источник
100% рабочая концепция для отправки электронной почты с вложением в php:
Я использовал этот код для отправки почты Google SMTP с приложением ....
Примечание. Загрузите библиотеку PHPMailer здесь -> https://github.com/PHPMailer/PHPMailer.
источник