0

如何使用phpmailer将文件作为字符串发送?

文件内容作为BLOB存储在Mysql中,但是发送邮件时文件大小只有2个字节?在数据库中大小约为30kb?

$phpmailer->AddStringAttachment(
  base64_encode($row['file_data']),
  $row['file_name'],
  'base64',
  $row['file_type']
);

数据直接从mysql数据库中获取,不做任何处理...

这将在浏览器中显示图像

header('Content-type: '.$row['file_type']);
echo $row['file_data'];
4

1 回答 1

1

首先,我想你可能是指base64_encode()而不是解码?

但是,我的猜测是您可能根本不想对其进行编码——phpMailer 会在内部为您处理编码,因此您不需要自己进行任何 base64 编码。

所以我认为正确的答案是简单地将数据传递给邮件程序而不进行任何编码。

$phpmailer->AddStringAttachment(
  $row['file_data'],
  $row['file_name'],
  'base64',
  $row['file_type']
);

希望有帮助。

于 2013-08-06T14:25:53.020 回答