2014-09-03 89 views
0

我正在使用codeigniter来处理基于Intranet的系统,该系统将允许公司内的用户通过基于代码信息的邮件系统向我们的客户发送价格表和营销材料。基于服务器的电子邮件附件

我能够发送电子邮件就好不添加行

$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" <[email protected]> 
Return-Path: <[email protected]> 
To: me 
Subject: =?utf-8?Q?TESt?= 
Reply-To: "[email protected]" <[email protected]> 
X-Sender: [email protected] 
X-Mailer: CodeIgniter 
X-Priority: 3 (Normal) 
Mime-Version: 1.0 

的上传文件夹,显然作用,我已经能够成功将文件发送到它,并存储所述数据库文件的信息。当我点击生成的链接时,我还可以在前端上下载好文件。

我已经耗尽谷歌富裕资源,并转向明智的互联网上的堆栈溢出大师。请让我知道我的微小和微小的错误,这将使我永远想要将我的小拇指残留在我的床架上。

编辑:我也提出:

$this -> email -> clear(TRUE); 

在我的功能

回答

0

上传内容由工作人员加入的开始和投入的“上传”文件夹,并在的public_html 。

如果'uploads'目录是'public_html'的子目录,那么'/ uploads /'不可能指向它。 '/ uploads /'是​​一个绝对路径,当你试图将它用作相对路径时。

该解决方案很简单,只需使用正确的目录路径即可。

如果您的应用程序/目录的public_html /为好,那么你就需要这样的:

FCPATH.'/uploads/' 

如果应用程序/目录在同一水平如的public_html /(应该是,那么:

APPPATH.'/uploads/' 
+0

我的应用程序与public_html->哪些房屋上传的级别相同。 APPATH。'/ uploads /'不起作用。即使在复制并粘贴我试图发送的文件的名称之后。我认为硬编码至少会给我一些结果,但我所得到的只是一个带有主题,没有正文和附件的电子邮件。 – DrewRobertson93 2014-09-03 23:27:15