通过实时服务器在codeigniter中发送邮件

时间:2018-09-11 06:58:35

标签: php codeigniter email

我正尝试按照codeigniter文档中的说明以codeignter发送电子邮件...但出现错误(无法使用PHP mail()发送电子邮件。您的服务器可能未配置为使用此方法发送邮件。)

代码---

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

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

    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');

    $this->email->send();

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

错误--

Unable to send email using PHP mail(). Your server might not be configured to send mail using this method.
Date: Tue, 11 Sep 2018 06:47:46 +0000
From: <***@gmail.com>
Return-Path: <***@gmail.com>
Reply-To: <***@gmail.com>
User-Agent: CodeIgniter
X-Sender: ***@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <5b976512c0d0b@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
=?UTF-8?Q?Email=20Test?=
Testing the email class.

我知道这个问题可能是重复的,但是我在这里提出的任何问题中都没有找到解决方案...

4 个答案:

答案 0 :(得分:4)

您尚未在代码中初始化电子邮件配置设置

$this->email->initialize($config);

$this->load->library('email');
$config = Array(
                'protocol' => 'smtp',
                'smtp_host' => 'tls://smtp.gmail.com',
                'smtp_port' => 587,
                'smtp_user' => '******', // your email
                'smtp_pass' => '*****', // your password
                'smtp_timeout'=>20,
                'mailtype' => 'text',
                'charset' => 'iso-8859-1',
                'newline'=>"\r\n",
                'wordwrap' => TRUE
               );

 $this->email->initialize($config);
 $this->email->from('***@gmail.com');
 $this->email->to('***@gmail.com');
 $this->email->subject('Email Test');
 $this->email->message('Testing the email class.');  
 $this->email->send();
 echo $this->email->print_debugger();

这必须为您工作。

答案 1 :(得分:0)

请检查email.php(application \ config),也许您的配置有问题检查电子邮件,例如SMTP设置

您可以添加一些配置变量,例如协议。您可以选择邮件,发送邮件或SMTP。因此,很明显,我选择了邮件,因为我无法使用发送邮件或SMTP。您将最终得到这样的东西:

childB

答案 2 :(得分:0)

也许您的配置有问题。您必须在配置文件中设置一些首选项。

$config['protocol'] = 'sendmail';

并且您必须初始化配置

$this->email->initialize($config);

答案 3 :(得分:0)

            $config['protocol'] = 'smtp';

            $config['smtp_host'] = 'mail.domain.com';

            $config['smtp_port'] = '587';

            $config['smtp_timeout'] = '7';

            $config['smtp_user'] = 'info@domain.com';

            $config['smtp_pass'] = '*******';

            $config['charset'] = 'utf-8';

            $config['newline'] = "\r\n";

            $config['mailtype'] = 'html'; // or html

            $config['validation'] = TRUE; // bool whether to validate email or not      

            $this->email->initialize($config);
            $this->email->from('info@domain.com', 'Name');
            $this->email->to($emailTo);


            $this->email->subject('Reset your password');

            $body = $this->load->view('forgotmailer', $data, TRUE);

            $this->email->message($body);


            $this->email->send();

............................................... ....................

$ this-> load-> library('email'); //添加库