отправка электронной почты в codeigniter - PullRequest
1 голос
/ 26 мая 2011

Можно ли отправить вложение из временного каталога?Когда я отправляю письмо, я получаю print_r($_FILES) как

Array ( [file] => Array ( [name] => test.doc 
        [type] => application/msword 
        [tmp_name] => /tmp/php2UaLKE 
        [error] => 0 [size] => 681472 ) 
      ) 

, и моя ошибка не может найти следующее вложение электронной почты: / tmp / php2UaLKE / EasyToEat.doc

и мое утверждение типа:

$attachment=$_FILES['file']['tmp_name'].'/'.$_FILES['file']['name'];        
$this->email->attach($attachment);

Я хочу знать, можно ли прикрепить документ к почте, не загружая его в указанное место на сервере в codeigniter?

Ответы [ 3 ]

1 голос
/ 26 мая 2011

Я на самом деле только что сделал это ... Он получил немного больше, чем вам нужно, но он делает именно это. Записывает файл во временный каталог, а затем отправляет его по электронной почте.


function send_weekly_report()
    {
        $server_ip = $_SERVER['REMOTE_ADDR'];
        if($server_ip != '127.1.1.1')
        {
            $this->load->model('admin_model');
            $this->load->helper('csv_helper');
            $this->load->helper('file');
            //create CSV Array
            $header = array("Sales Rep", "Client", "Action Taken", "Won or Lost", "Action Why", "Current Vendor", "Comp. Cal Program", "Comp. Cal Date", "Notes", "Time");  
            $data = $this->admin_model->load_week();          
            $output = array_merge(array($header), $data);

            $csv = array_to_csv($output);
            $filename = '/tmp/'.time().".csv";
            if ( ! write_file($filename, $csv))
            {
                 $this->load->library('email');
                $this->email->from('donotreply@email', 'Admin');
                $this->email->to('peter@email.com'); 

                $this->email->subject('Weekly Sales Test FAIL!!!!!');
                $this->email->message('Weekly Report Failed!');   
                $this->email->send();
            }
            else
            {
                 //send email
                 $this->load->library('email');
                $this->email->from('donotreply@email', 'Admin');
                $this->email->to('peter@email.com'); 

                $this->email->subject('Weekly Sales Test');
                $this->email->message('Please find the attached report.');    
                $this->email->attach($filename);
                $this->email->send();

                //echo $this->email->print_debugger();                 
            }

        }
    }
0 голосов
/ 18 октября 2016

Вы не можете напрямую прикрепить файл из поля ввода файла. Пожалуйста, обратитесь к следующему ответу

https://stackoverflow.com/a/3628203/3377733

0 голосов
/ 26 мая 2011

Вы забыли одну вещь:

$attachment=$_FILES['file']['tmp_name'].'/'.$_FILES['file']['name'];        
$this->email->attach($attachment);

Путь к файлу - это "tmp_name" вашего массива (не с "name").
Попробуйте это:

$this->email->attach($_FILES['file']['tmp_name']);

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...