Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PEAR邮件发送CSV失败_Php_Pear - Fatal编程技术网

Php PEAR邮件发送CSV失败

Php PEAR邮件发送CSV失败,php,pear,Php,Pear,在PHP中使用PEAR邮件发送CSV时遇到问题。我可以接收消息OK,甚至可以打开CSV附件——但内容显示为base64编码字符串,而不是普通的CSV 以下是相关代码,它输出如下内容: SUQsRW在附加的CSV中 显然不是我想要的 // $csv is originally something like // a,b,c,d,e // d,e,f,g,h $csv = base64_encode($csv); $from = "..."; $to = "..."; $subject = "..

在PHP中使用PEAR邮件发送CSV时遇到问题。我可以接收消息OK,甚至可以打开CSV附件——但内容显示为base64编码字符串,而不是普通的CSV

以下是相关代码,它输出如下内容:

SUQsRW
在附加的CSV中

显然不是我想要的

// $csv is originally something like
// a,b,c,d,e
// d,e,f,g,h

$csv = base64_encode($csv);
$from = "...";
$to = "...";
$subject = "...";

$headers = array();
$headers['From'] = $from;
$headers['To'] = $to;
$headers['Subject'] = $subject;

// The attachment
$mime = new Mail_mime();
$mime->addAttachment($csv, "text/csv", "report.csv", false);
$mime->setTXTBody($bodyText);

$params = array();
$params['text_charset'] = 'utf-8';

$body = $mime->get($params);
$headers = $mime->headers($headers);

$smtp = Mail::factory('smtp', [unrelated server args]);
$mail = $smtp->send($to, $headers, $body);

显然,您不需要对实际的文件内容进行base64编码。无论如何,我仍然无法在Excel中打开该文件,因为它给了我以下错误:

SYLK:文件格式无效


描述了解决方案。根据知识库,它只适用于Excel for Mac,但我在Windows上看到了错误。无论如何,解决方案都是正确的,CSV不能以
ID
开头作为前两个字符。

WOW。谢谢你弄明白了。有一段时间我一直在想这个!