codeigniter邮件附件已损坏

时间:2016-02-15 07:50:07

标签: php codeigniter email-attachments

使用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-我听说这个版本的附件功能不稳定但是当给出本地文件时附件功能正常工作

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我认为你不能以这种方式附加文件。

我无法专门找到旧的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版本之间没有那么多重大变化,但是解决了许多小问题。