CodeIgniter发送带有图像的电子邮件



我是CI.的初学者

这是我在welcome.php 中的代码

class Welcome extends CI_Controller {

public function index()
{
$this->load->helper('url');
    $this->load->view('welcome_message');
}
public function emailSend()
{
$this->load->library('upload');
$this->load->library('email');
$config['upload_path'] = 'uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$this->upload->initialize($config);



$this->email->from($this->input->post('from'), $this->input->post('name'));
$this->email->to('taryar.t1@gmail.com');
//$this->email->cc('another@another-example.com');
//$this->email->bcc('them@their-example.com');
$this->email->subject($this->input->post('subject'));
$this->email->message($this->input->post('body'));
if($this->upload->do_upload())
{
    $attachdata=$this->upload->data();
$this->email->attach($attachdata['full_path']);
}
if($this->email->send())
    {
        echo 'Your email was sent, successfully.';
    }
    else
    {
        show_error($this->email->print_debugger());
    }
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

此代码仅适用于文本,不适用于附件(图像)。错误为"无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。"

我该如何修复那个错误??帮帮我谢谢你。

        $config['charset'] = 'iso-8859-1';
        $config['wordwrap'] = TRUE;
        $config['mailtype'] = 'html';
        $this->email->initialize($config);
        $to = $this->input->post('to'); // email@gmail.com
        $cc = 'email@gmail.com'; // email@gmail.com
        $subject = $this->input->post('subject');
        $message = $this->input->post('message');
        $this->email->to($to);
        $this->email->cc($cc);
        $this->email->from('info@awandevelopers.com','Awan Developers');
        $this->email->subject($subject);
        $this->email->message($message);

        $config['upload_path'] = './attachments/'; // or you can use any folder like uploads
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = '1000';
        $config['max_width']  = '1024';
        $config['max_height']  = '768'; 
        $config['encrypt_name']     = true;
        $this->load->library('upload', $config);
        if(!$this->upload->do_upload('files')) // files will be input attachment field name
        {
            $this->upload->display_errors();
        }else{
            $image_data = $this->upload->data();
            $fname=$image_data['file_name'];
            $fpath=$image_data['file_path'].$fname;
            $this->email->attach($fpath);
            if ($this->email->send()){
                echo "Mail Sent!";
            }
            else{
                echo "There is error in sending mail!";
            }
        }   

请从官方文档中尝试。。

$this->email->attach('/path/to/photo1.jpg');
$this->email->send();
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|txt|php|pdf';
$config['max_size']         = '9000';
$config['encrypt_name']     = true;
$image_data = $this->upload->data();
$fname=$image_data['file_name'];
$fpath=$image_data['file_path'].$fname;
$this->email->attach($fpath);

以上代码将解决您的问题。我也遇到了同样的问题。这是因为你保存在文件夹中的文件名不同,因为你附加了上面的代码会解决它,因为它采用了上传文件夹的正确路径。请注意,上传文件夹应该在根目录中。

相关内容

  • 没有找到相关文章

最新更新