我在我的网络应用程序中使用Codeigniter 3,我需要向所有用户发送带有cerain数据的电子邮件。每封电子邮件都包含略有不同的数据。
$this->load->model('Main_model');
$query = $this->Main_model->get_all_users();
$data = $query->result_array();
foreach ($data as $user) {
$this->email->from('My email', 'Me');
$this->email->to($user['username']);
$this->email->subject('Subject');
$this->email->message("Pretty long text with some variables in it." . $user['choice1'] . "End of message");
$this->email->send();}
问题在于,当我测试它时,大多数用户甚至都没有收到电子邮件。一些收到邮件的人抱怨文本的一部分($ user ['choice'])不在他们收到的文本中。
我有三个问题:
1)是否有更好的方式发送电子邮件,以确保它们全部交付?或者我忘了什么,也许是一些服务器配置?我对电子邮件了解不多,所以随时给我讲课,我会很高兴。
2)是否有更好的方法为邮件创建文本,将其全部放在message()函数的parethesis之间?
3)我是否应该在foreach周期中发送电子邮件?是否有可能服务器崩溃,这是大多数邮件未送达的原因?我在数据库中最多有180个用户。