PEAR邮件发送CSV失败

3
我在使用 PHP 中的 PEAR Mail 发送 CSV 时遇到了问题。我可以正常接收消息,甚至可以打开 CSV 附件,但其内容显示为 base64 编码字符串,而不是普通的 CSV。
以下是相关代码,输出类似于:
在所附的 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);
1个回答

3
显然,您不需要对实际文件内容进行base64编码。无论如何,我仍然无法在Excel中打开该文件,它给了我以下错误:
SYLK: 文件格式无效
解决方案在此处描述。根据KB的说法,它仅适用于Mac上的Excel,但我在Windows上看到了这个错误。无论如何,解决方案是正确的,CSV不能以ID作为前两个字符。

哇,感谢你解决了这个问题。我卡在那里好一会儿了! - Vik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接