#php #codeigniter #email
#php #codeigniter #Адрес электронной почты
Вопрос:
Я использую CodeIgniter с его библиотекой по умолчанию. И всякий раз, когда я отправляю электронное письмо, оно отправляет его дважды. Есть ли у кого-нибудь какие-нибудь отладочные указатели или подсказки для решения этой проблемы?
$this->CI->email->from($this->from, $this->company_name);
$this->CI->email->to($this->to);
$this->CI->email->subject($this->subject);
eval("$message = "".$this->message."";");
$this->CI->email->message($this->message);
if($attachment != "")
{
$attac_exp=explode(",",$attachment);
foreach($attac_exp as $key=>$value)
{
if($value != '')
{
$this->CI->email->attach(getcwd()."/attachments/".$value);
}
}
}
$this->CI->email->send();
$this->CI->email->clear(true);
На данный момент я настроил sendmail с помощью SMTP.
Если я пытаюсь отправить электронное письмо через командную строку, я получаю только одно электронное письмо. Насколько я знаю, проблема должна быть в CodeIgniter. Я уже провел свое исследование по этому вопросу.
Комментарии:
1. У меня была аналогичная проблема в phalcon frame, для тела моего сообщения мне пришлось задействовать ob_start() и ob_clean и очистить сообщение… В codeigniter есть нечто подобное: отправить([$auto_clear = TRUE]), может быть, это поможет
2. Спасибо, Денис, за ответ, да, я это вижу, и я уже включил это в свой код, но все равно у меня почему-то не получалось
3. покажите код вашего контроллера или код модели, куда вы отправляете это письмо, потому что я думаю, что вы вызываете эту функцию дважды…
4. Что я также дважды проверяю перед публикацией здесь, нет многократного вызова этой функции
Ответ №1:
Ниже приведен пример фрагмента, который отлично работает с вложением одного файла в электронное письмо. Пожалуйста, обратитесь и исправьте соответствующим образом.
$config = array();
$config['useragent'] = "CodeIgniter";
$config['mailpath'] = "/usr/bin/sendmail"; // or "/usr/sbin/sendmail"
$config['protocol'] = "smtp";
$config['smtp_host'] = "localhost";
$config['smtp_port'] = "25";
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['newline'] = "rn";
$config['wordwrap'] = TRUE;
$dummyfrom='admin@mydoamin.com';
$system_name = "Test Company";
$from = 'rajesh@abcd.com';
$to ='to@abcd.com';
$bcc = 'bcc@abcd.com';$sub="Attachment Test";
$msg = "Please ignore this mail";
$this->load->library('email');
$this->email->initialize($config);
$this->email->from($dummyfrom, $system_name);
$this->email->reply_to($from);
$this->email->to($to);
$this->email->bcc($bcc);
$this->email->subject($sub);
$this->email->message($msg);
$this->email->attach(APPPATH.'test.txt');
$this->email->send();
Обратите внимание, что он выбирает файл test.txt
из пути к приложению.
Вы можете использовать $this->email->print_debugger()
для просмотра отладки.
Комментарии:
1. Ankit, этот же код также отправляет его дважды? вы можете применить его в другой функции и проверить. При этом вы уверены, что это не codeigniter, который отправляет дважды, но логика программы где-то неверна.