Вопрос по email, php, email-attachments – Как прикрепить PDF к электронной почте, используя функцию PHP mail

13

Я отправляю электронное письмо, используя функцию почты PHP, но я хотел бы добавить указанный PDF-файл в качестве вложенного файла в электронное письмо. Как бы я это сделал?

Вот мой текущий код:

$to = "[email protected]";
$subject = "My message subject";
$message = "Hello,\n\nThis is sending a text only email, but I would like to add a PDF attachment if possible.";
$from = "Jane Doe <[email protected]>";

$headers = "From:" . $from; 
mail($to,$subject,$message,$headers);

echo "Mail Sent!";
[Пожалуйста, перейдите по этой ссылке, чтобы создать динамический PDF и отправить почту] [1] [1]:stackoverflow.com/questions/18396714/… Dheeraj singh

Ваш Ответ

3   ответа
2

не делайте этого. Создание письма MIME вручную - дело болезненное, и ОЧЕНЬ легко облажаться.

Вместо этого используйтеPHPMailer или жеSwiftmailer, Это почти тривиально, чтобы сделать вложения с ними, и вы получите гораздо больше обратной связи в случае, если что-то взорвется, v.s. простое истина / ложь, которую mail () снисходительно выплевывает.

1

замещать

$body             = eregi_replace("[\]",'',$body);

С

$body             = preg_replace('/\.([^\.]*$)/i','',$body);
19

P, такой какPHPMailer что сделало бы процедуру отправки почты намного проще и лучше.

Вот пример того, как использовать PHPMailer, это действительно просто!

<?php

require_once('../class.phpmailer.php');

$mail             = new PHPMailer(); // defaults to using php "mail()"

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->AddReplyTo("[email protected]","First Last");

$mail->SetFrom('[email protected]', 'First Last');

$mail->AddReplyTo("[email protected]","First Last");

$address = "[email protected]";
$mail->AddAddress($address, "John Doe");

$mail->Subject    = "PHPMailer Test Subject via mail(), basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}

?>

Альтернативой PHPMailer являетсяhttp://swiftmailer.org/

Error: User Rate Limit Exceeded
AddAttachment()Error: User Rate Limit ExceededAdd an attachment from a path on the filesystemError: User Rate Limit Exceededfile_get_contents()Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы