0

我正在将 codeigniter 2 与 tank_auth 库一起使用。在名为 user_model 的模型中,它有一个函数 (_send_email()) 来发送电子邮件:

function _send_email($type, $email, &$data)
{
    $this->load->library('email');
    $this->config->set_item('language', 'dutch'); 

    $this->email->set_newline("\r\n");
    $this->email->from($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth'));
    //$this->email->reply_to($this->config->item('webmaster_email', 'tank_auth'), $this->config->item('website_name', 'tank_auth'));
    $this->email->to($email);
    $this->email->subject(sprintf($this->lang->line('auth_subject_'.$type), $this->config->item('website_name', 'tank_auth')));
    $this->email->message($this->load->view('email/'.$type.'-html', $data, TRUE));
    $this->email->set_alt_message($this->load->view('email/'.$type.'-txt', $data, TRUE));

    if($this->email->send()){
        echo "sendit";
    }
}

我尝试从这样的控制器调用此函数:

public function email($value='')
{
    $this->lang->load('tank_auth', 'dutch');
    $this->load->model('user_model');
    $data = array("site_name" => "site name");
    $this->user_model->_send_email('bestelling_geplaatst', "my_email@hotmail.com",$data); // send 
}

问题是电子邮件被发送两次到电子邮件地址

遇到此问题的任何人都知道在哪里寻找解决方案(或问题)

更多信息:

我正在尝试在我的控制器中创建一个方法,就像这里的使用指南中的示例一样:https ://www.codeigniter.com/user_guide/libraries/email.html

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

$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com'); 
$this->email->cc('another@another-example.com'); 
$this->email->bcc('them@their-example.com'); 

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

$this->email->send();

此方法还会发送两次电子邮件!

4

3 回答 3

1

原因是我有 Google Chrome 的插件 Firebug Lite。在我停用此页面后,该页面仅请求一次!在这里找到遮阳篷: https ://stackoverflow.com/a/10580841/1108772

感谢大家的回复和所有的帮助

于 2012-12-20T12:56:33.523 回答
0

删除此代码

if($this->email->send())
{
    echo "sendit";
}

function _send_email($type, $email, &$data)
于 2012-12-20T11:59:43.867 回答
0

首先,这是错误的做法。仅使用模型函数与数据库交互。发送邮件的功能应该在控制器中。

于 2012-12-20T12:22:45.983 回答