【发布时间】:2014-11-26 14:54:47
【问题描述】:
我想形成一个文件 (PHPExcel) 并将其作为附件邮寄 (PHPMailer),而不需要服务器存储,可以吗?
我知道在 PHPExcel 中形成/创建文件并将其作为附件通过 PHPMailer here 发送的可能性。但它通过/通过在服务器的某处写入文件来工作。就服务器资源消耗而言很差。 PHPExcel 允许直接以这种方式输出,而无需保存在服务器上:
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
ob_end_clean();
header('Content-Type: application/vnd.ms-excel');
...
$objWriter->save('php://output');
是否可以(以及如何)将其附加到电子邮件中,类似于 save('php://output')?
【问题讨论】:
-
stackoverflow.com/questions/11164167/… 捕获 excel 输出到字符串,使用链接方法附加到电子邮件。但请注意,如果您的 excel 变得“大”,您可能很容易因为内存不足错误而终止脚本。
-
@MarcB,谢谢你的警告,但是如果Excel文件是3M大小,会不会是过载和内存不足的错误?
-
不知道。这取决于您设置的 php 内存限制。但考虑到您将捕获的字符串复制几次:原始捕获,传递给 phpmailer 以作为附件,然后在构建时再次嵌入到电子邮件中。
-
只需将您的数据转换为字符串,然后将其传递给您的 PHPMailer 实例上的
addStringAttachment。 -
@Synchro,我做到了。你可以把它作为一个答案,我会检查它。
标签: yii phpexcel phpmailer send email-attachments