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" }