codeigniter 电子邮件附件已损坏

codeigniter mail attachment corrupted

使用 codeigniter 1.5.2 框架,我尝试上传文件作为附件发送到邮件中,但是当邮件发送时它显示 .dat 文件并且与我发送的文件无关.

$attachfilepath = $_FILES['userfile']['tmp_name'];
$attachfilename = $_FILES['userfile']['name'];

$CI->load->library('email');
$CI->email->from($adminemail, 'Client Name');
$CI->email->to($to);
$CI->email->subject($subject);
$CI->email->message($message);
$CI->email->attach($attachfilepath,$attachfilename);
$CI->email->send();

P.S- 我听说这个版本的附件功能不稳定,但是当给本地文件时附件功能可以工作

我认为你不能用那种方式附加文件。

我找不到旧的 1.5.2 代码,所以我不能 100% 确认这一点

attach($filename, $disposition = 'attachment') ^^ 这是来自电子邮件库的方法签名 2.x

attach($attachfilepath, $attachfilename); ^^ 你做的不对。

我认为你需要做。

$attachedFileLocation = $attachfilepath . $attachfilename $CI->email->attach($attachedFileLocation); ^^ 您可能需要在 2 之间添加一个正斜杠,以便创建完整路径,但这是您必须调试的内容。

希望这能解决您的问题。

P.S。我还建议升级到 CI 2,因为 2 版本之间没有太多重大更改,但解决了许多小问题。

@bhugy 我认为这是 codeigniter 版本的一些总线。
我们不能在此版本 codeigniter.but 中使用临时文件保存路径,我们可以在使用纯 php 时使用此逻辑。 (可能是新版本的codeigniter)