【发布时间】:2020-12-16 03:26:01
【问题描述】:
我在使用静态电子邮件地址时已经尝试过了。但是,当我想发送存储在数据库中的电子邮件时,它不起作用。
这是我的代码:
//email.php
function sentmail($value='')
{
$message = $this->load->view('templates/email',$value,TRUE);
$config = array(
'protocol' => 'smtp',
'smtp_host' => 'mail.mail.co.id',
'smtp_port' => 26,
'smtp_user' => 'mail@mail.com ',
'smtp_pass' => 'password',
'mailtype' => 'html',
'crlf' => "\r\n",
'newline' => "\r\n"
);
$this->email->initialize($config);
$this->email->set_newline("\r\n");
$this->email->from($config['smtp_user']);
$this->email->to($email);
$this->email->subject('Email');
$this->email->message($message);
if($this->email->send())
{
echo "Email sudah terkirim.";
}
else
{
echo "Email gagal terkirim.";
$this->email->print_debugger();
}
}
//email_model.php
function get_email()
{
$this->db->select('email');
$this->db->from('tb_email');
$this->db->order_by('id_email','DESC');
$this->db->limit(1);
$query = $this->db->get();
return $query->result();
}
这是我的桌子的样子
tb_email
id_email nama email
1 Adam x@mail.com
2 Philipp y@mail.com
终于找到问题了
当我再次尝试解决这个问题时,我发现我的问题实际上是 preg_match() 期望参数 2 是字符串,给定数组。
这是我的代码:
\\email.php
function process($id_email)//proses input email
{
$email = $this->email_model->get_email();
$where = array('id_email' => $id_email);
$data['query_added'] = $this->email_model->latest_email($where,'tb_email');
//var_dump($data);
var_dump($email,$data);
$this->sentmail($data);
//$this->session->set_flashdata('input_success','<div class="alert alert-success" role="alert">Input sudah dibuat.</div>');
//redirect('email');
}
而错误结果是:
遇到了 PHP 错误
严重性:警告
消息:preg_match() 期望参数 2 是字符串,给定数组
文件名:libraries/Email.php
行号:1070
回溯:
文件:C:\xampp\htdocs\projek\application\controllers\Email.php 线路:150 功能:到
文件:C:\xampp\htdocs\projek\application\controllers\Email.php 线路:128 功能:发送邮件
文件:C:\xampp\htdocs\projek\index.php 线路:315 函数:require_once
【问题讨论】:
-
请像这样更改您的模型代码 $query = $this->db->get();返回 $query->row()->email;再试一次
-
感谢您的帮助,但仍然无法正常工作
-
@mickmackusa 这就是我感到困惑的原因。我没有使用 preg_match() 但错误找到了它。但是根据错误信息,这个问题是因为
$this->email->to()在函数sentmail -
@mickmackusa 我从不更改库中的任何内容。
-
您的意思是使用
$id_email从表中获取电子邮件地址吗?现在,您正在获取最后一个条目,而与 ID 无关。
标签: php codeigniter email