我正在使用codeigniter在一个基于intranet的系统上工作,该系统将允许公司内部的用户通过基于codeigniter的邮件系统向我们的客户发送价格表和营销材料。
我可以在不添加行的情况下发送一封电子邮件
$this -> email -> attach('/uploads/'.$file_name.$file_extension);
上传内容由工作人员添加,并放入public_html中的"上传"文件夹中。
我将文件的信息存储在数据库表中,然后在发送电子邮件时调用它以获取所需的名称和扩展名。我已经进行了测试,以确保它从数据库中提取了正确的名称和扩展名。
我仍然收到一个错误,上面写着:
Unable to locate the following email attachment: /uploads/company_canadian_catalog.pdf
220 smtp.mandrillapp.com ESMTP
hello: 250-ip-10-33-129-14
250-PIPELINING
250-SIZE 26214400
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250 8BITMIME
from: 250 2.1.0 Ok
to: 250 2.1.5 Ok
data: 354 End data with .
250 2.0.0 Ok: queued as A20963C201A
quit: 221 2.0.0 Bye
Your message has been successfully sent using the following protocol: smtp
User-Agent: CodeIgniter
Date: Wed, 3 Sep 2014 12:24:55 -0700
From: "me" <my_company@email.com>
Return-Path: <my_company@email.com>
To: me
Subject: =?utf-8?Q?TESt?=
Reply-To: "my_company@email.com" <my_company@email.com>
X-Sender: my_company@email.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Mime-Version: 1.0
上传文件夹显然可以工作,因为我已经成功地将文件发送到它,并将所述文件信息存储在数据库中。当我点击生成的链接时,我也可以在前端下载文件。
我已经被谷歌的foo资源耗尽了,并求助于栈溢出的明智的web间大师。请让我知道我的微小错误,这将使我永远想把我的小脚趾钉在床架上。
编辑:我还放了:
$this -> email -> clear(TRUE);
在我的函数的开头
上传内容由工作人员添加,并放入public_html中的"上传"文件夹中。
如果"uploads"目录是"public_html"的子目录,那么"/uploads/"不可能指向它。"/uploads/"是一个绝对路径,而您正试图将其用作相对路径。
解决方案很简单,只需使用正确的目录路径即可。
如果您的应用程序/目录也位于public_html/内部,那么您需要以下内容:
FCPATH.'/uploads/'
如果应用程序/目录与public_html/处于同一级别(出于安全目的,应该是),则:
APPPATH.'/uploads/'