我想使用codeigniter发送邮件。我使用codeigniter作为邮件程序。我写了一个控制器并将其上传到网上。当我打电话给控制器。这显示错误。我正在编写我的控制器,如
<?php
class Testmail extends CI_Controller {
public $data = array();
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
$this->load->helper(array('form', 'url'));
$this->load->library('email');
$this->load->helper('url');
}
public function mailsend()
{
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$this->email->initialize($config);
$this->email->from('kunal.saxena.kunal@gmail.com', 'Your Name');
$this->email->to('kunal.saxena.kunal@gmail.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();
echo $this->email->print_debugger();
}
}
但它不起作用,我得到了像
这样的错误Exit status code: 127
Unable to open a socket to Sendmail. Please check settings.
Unable to send email using PHP Sendmail. Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Mon, 28 May 2012 10:51:18 +0000
From: "Your Name"
Return-Path:
To: kunal.saxena.kunal@gmail.com
Subject: =?iso-8859-1?Q?Email_Test?=
Reply-To: "kunal.saxena.kunal@gmail.com"
X-Sender: kunal.saxena.kunal@gmail.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <4fc358a653ad4@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Testing the email class.
如何删除此错误..?
答案 0 :(得分:0)
确保您的服务器具有sendmail并且设置正确。如果您没有它并且无法安装它,您可以使用谷歌SMTP服务器发送电子邮件,这是我在localhost上所做的。您可以找到如何执行此操作的示例here
PS。控制器看起来很好
答案 1 :(得分:0)
您需要在计算机上安装MTA(邮件传输代理)才能实际发送电子邮件,并且需要配置PHP以使用它来发送电子邮件。
如果您使用Linux或OS X作为开发环境,我强烈建议将msmtp作为一种易于配置的解决方案。很容易让它与几乎任何电子邮件帐户一起工作,并且让PHP与它交谈也很容易。我在我的Ubuntu开发机器上使用了一个CodeIgniter项目正好使用这个设置,它运行得非常好。 Arch Linux wiki上有a great tutorial that covers this,但大多数应该相对容易适应其他Linux发行版或OS X.