基于服务器的电子邮件附件

时间:2014-09-03 21:02:12

标签: codeigniter email attachment

我正在使用codeigniter处理基于Intranet的系统,该系统允许公司内部的用户通过基于codeigniter的邮件系统向我们的客户发送价目表和营销材料。

我可以发送电子邮件,但不添加行

$this -> email -> attach('/uploads/'.$file_name.$file_extension);

上传工作由工作人员添加并放入public_html中的“uploads”文件夹中。

我将文件的信息存储在数据库表中,然后在我要发送电子邮件时调用它以获取所需的名称和扩展名。我已经测试过,以确保它从数据库中提取正确的名称和扩展名。

我仍然收到一条错误消息:

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

uploads文件夹显然有效,因为我已经成功地向其发送文件并将所述文件信息存储在数据库中。当我点击生成的链接时,我也可以在前端下载文件。

我已经厌倦了google-foo资源,并转向了堆栈溢出的明智的网络间专家。请让我知道我的微小和微小的错误,这将使我永远想要在我的床架上留下我的小拇指。

编辑:我还说:

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

在我的功能开始

1 个答案:

答案 0 :(得分:0)

  

上传工作由工作人员添加并放入public_html中的“uploads”文件夹中。

如果'uploads'目录是'public_html'的子目录,那么'/ uploads /'就不可能指向它。 '/ uploads /'是​​绝对路径,而您尝试将其用作相对路径。

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

如果您的应用程序/目录 public_html /中,那么您需要:

FCPATH.'/uploads/'

如果application / directory与处于同一级别与public_html /(出于安全目的,它应该是),那么:

APPPATH.'/uploads/'