14

PHPメール機能を使用してメールを送信していますが、指定したPDFファイルを添付ファイルとしてメールに追加したいと思います。どうすればいいですか?

これが私の現在のコードです:

$to = "me@myemail.com";
$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 <janedoe@myemail.com>";

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

echo "Mail Sent!";
4

3 に答える 3

20

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("name@yourdomain.com","First Last");

$mail->SetFrom('name@yourdomain.com', 'First Last');

$mail->AddReplyTo("name@yourdomain.com","First Last");

$address = "whoto@otherdomain.com";
$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/があります

于 2012-05-15T18:23:46.100 に答える
3

簡単な答え:それをしないでください。手作業でMIMEメールを作成するのは骨の折れる作業であり、非常に簡単に失敗します。

代わりに、PHPMailerまたはSwiftmailerを使用してください。それらを添付するのはほとんど簡単であり、何かが爆発した場合に備えて、mail()が吐き出すことを認める単純な真/偽と比較して、はるかに優れたフィードバックを得ることができます。

于 2012-05-15T18:22:50.050 に答える
1

非推奨エラーを排除するには、

交換

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

$body             = preg_replace('/\.([^\.]*$)/i','',$body);
于 2016-02-24T18:55:02.870 に答える