I am using Codeigniter 3 for my web app and I need to send e-mail with cerain data to all users. Each email contains slightly different data.
$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();}
The problem is that when I tested it, most users did not even get the email. Some of those who received mail complained that the part of the text ($user['choice']) was not in the text they received.
I have three questions:
1) Is there a better way to send emails, to ensure they are all delivered? Or am I forgetting something, maybe some server configuration? I don't know much about emails, so feel free to lecture me, I would be very glad.
2) Is there a better way to create text for the mail that to put it all between the parethesis in the message() function?
3) Should I even be sending emails in a foreach cycle? Is it possible that server broke down and that is the cause of most mails not being delivered? There is a maximum of 180 users that I have in database.