如何使用PHPMailer将临时PHP文件作为附件发送?

如何使用PHPMailer将临时PHP文件作为附件发送?,php,phpmailer,email-attachments,Php,Phpmailer,Email Attachments,我试图发送一个由PHP代码创建的临时文件作为电子邮件附件 我使用的是PHPMailer-当我尝试将附件添加到物理文件时,它可以正常工作。。我不确定附加临时文件需要做什么 下面是一些代码: require_once("class/BuildPass.php"); require_once("../../Utilities/PHPMailer/class.phpmailer.php"); // Prepare email $mail = new PHPMailer(); $mail->Se

我试图发送一个由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" }

您是通过表单上传所需文件,还是只想生成包含$newPass的任何文件并将其与电子邮件一起发送?我只是重新阅读了你的问题,我看到了文件的来源。嗨-我不是通过表单上传文件-我只是想生成包含$newPass的文件并将其发送到电子邮件中。你能发布var_dump($newPass)吗;Hi-var_转储($newPass);输出以下内容。。您的问题并张贴在那里:)