1

PHP コードで作成した一時ファイルを電子メールの添付ファイルとして送信しようとしています。

私は PHPMailer を使用しています - 物理ファイルに添付ファイルを追加しようとすると、これは問題なく動作します..一時ファイルを添付するために何をする必要があるのか​​ わかりません..

ここにいくつかのコードがあります:

require_once("class/BuildPass.php");
require_once("../../Utilities/PHPMailer/class.phpmailer.php");

// Prepare email 
$mail = new PHPMailer();
$mail->SetFrom("address@mycompany.com", "My Company");
$mail->AddAddress($email, $name);
$mail->Subject = "Here's your email with file attachment";
$mail->CharSet="UTF-8";

// Retrieve the email template required
$message = file_get_contents('pass/email_templates/Event200613.html');  // HTML Mail template
// Replace the % with the actual information
$message = str_replace('%name%', $name, $message);
$message = str_replace('%email%', $email, $message);
// Add embedded images
$mail->AddEmbeddedImage("Images/strip.png", "strip");
$mail->AddEmbeddedImage("Images/logo5787924_md.jpg", "Company_logo");

//generate a new pass
$newPass = BuildPass::createPass($name, $email, $barcode, $error);  // This function creates an Apple Passbook file with .pkpass extension ...

$mail->MsgHTML($message);

$mail->Send();

このコードは私にとってはうまく機能します..画像が適切に埋め込まれたHTMLメールを送信します..(注 - $nameと$emailは入力フォームで定義されました)..

ここで一時ファイル $newPass を添付します。単純に使えない

$mail->AddAttachment($newPass);  // This crashes

定義されたパス名で一時ファイルを作成し、この添付ファイルを追加する必要があると思いますが、その方法に関する正しい情報が見つかりません..

どんな助けでも大歓迎です..

アンドリュー

var_dump($newPass);

object(BuildPass)#2 (7) { ["keyPath":"BuildPass":private]=> string(89) "/mnt/stor08-wc1-ord1/738827/dev.myserver.com/web/content/path/pass" ["sourcePath":"BuildPass":private]=> string(96) "/mnt/stor08-wc1-ord1/738827/dev.myserver.com/web/content/path/pass/source" ["workFolder":"Pass":private]=> string(18) "/tmp/51a5d3795c59e" ["ID":"Pass":private]=> string(13) "blahblah" ["content"]=> array(14) { lots of stuff } } } } ["passBundleFile"]=> string(39) "/tmp/51a5d3795c59e/51a5d3795c59e.pkpass" }
4

0 に答える 0