2012-05-15 15 views
13

PHPメール機能を使用してメールを送信していますが、指定したPDFファイルを添付ファイルとして追加します。どうすればいい?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!"; 
+0

[1] [ダイナミックPDFを生成し、メールを送信するには、このリンクに従ってください] [1]:http://stackoverflow.com/questions/18396714/how-to-send-email-with -pdf-attachment-using-php/22141096#22141096 –

答えて

19

PHPMailerなどのPHPメールライブラリを使用することをお勧めします。これにより、メールを送信する手間がはるかに簡単になります。

ここでは、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のに代わるものは

$体= eregi_replace( "[]"、 ''、$体)を交換し、非推奨のエラーを排除するためにhttp://swiftmailer.org/

+0

添付ファイルがリモートサーバーに保存されている場合はどうなりますか?何か変わるか、うまくいくはずですか? – paulalexandru

+0

[AddAttachment()](https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php#L2230)はリモートファイルをサポートしていません: 'ファイルシステム上のパスから添付ファイルを追加する ' 事前に* file_get_contents()*を使用すると、@ paulalexandru ...? :/ – Alastair

+3

あなたは質問に答えていません。あなたはただの解決策を提示しただけです。ユーザーは、pdfを送信するためにPHPメール機能が必要でした。 – Luben

2

簡単な答えは:それをしないでください

は、ここに私の現在のコードです。手作業でMIMEメールを作成するのは厄介なビジネスであり、非常に簡単です。

代わりに、PHPMailerまたはSwiftmailerを使用してください。添付ファイルを使用することはほとんどありません。何かが爆発した場合には、FAR FAR FARより良いフィードバックが得られます。 mail()が吐き出すことを納得させる単純なtrue/falseです。

1

あります。

$体=にpreg_replace( '私は/.([^.]*$)/'、 ''、$本体)で

関連する問題