通过联系表单与文件附件发送电子邮件

时间:2013-10-25 21:34:54

标签: php codeigniter file-upload email-attachments

我正在尝试使用Codeigniter创建一个联系表单,该表单将发送带有文件附件的电子邮件。现在当发送电子邮件时,我得到的只是上传的文件的名称而不是实际的附件。有人可以帮助我吗?

以下是我正在使用的代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class sendmail_contact extends CI_Model {

function __construct()
{

    parent::__construct();

}

function send()
{

    $this->load->library('email');
    $this->load->helper('date');

    $now = time();
    $contact_date = unix_to_human($now); // U.S. time, no seconds

    $this->load->library('email'); 
    $this->email->set_newline("\r\n");

    $name = $this->input->post('name', TRUE);
    $file = $this->input->post('file', TRUE);


    $this->email->from($email);
    $this->email->to('test@gmail.com'); 

    $this->email->subject('Subject');
    $this->email->message("Email" . $name . "\r\n" . $file); 

    $this->email->send();


}

2 个答案:

答案 0 :(得分:1)

首先,将附件保存到存储中。

请参阅http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

然后,在保存用户上传的文件后,获取该文件的名称 并使用

$this->email->attach($name);

它会将文件附加到您要发送的电子邮件中。

答案 1 :(得分:1)

$name应该是文件的完整路径,您可以通过回显找到系统的根目录

echo $this->config->item('server_root');

你可以像这样构建它:

$this->config->item('server_root')."/path to needed folder/"

您文件的路径为:

$name = $this->config->item('server_root')."/path to needed folder/"."file´s name";

如果你需要构建一个相对路径,你可以在这里咨询如何做到link