2014-09-03 28 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