Динамическое содержимое электронной почты становится дублирующимся со значением первого цикла внутри foreach - PullRequest
1 голос
/ 03 апреля 2019

Я хочу отправить почту нескольким пользователям, Данные не дублируются в моем массиве, и они меняются в каждом цикле внутри каждого, но проблема в том, что электронное письмо, отправленное пользователю, содержит аналогичную информацию, которая поступает в первый цикл

Например - если массив равен

stdClass Object
(
    [ID] => 346
    [request_by] => 43
    [approved_by] => 31
    [request_month] => 2019-03
    [objects] => {"43":{"31":0}}
    [request_by_name] => Q
    [approved_by_name] => E
    [email] => q@gmail.com
)

stdClass Object
(
    [ID] => 348
    [request_by] => 35
    [approved_by] => 31
    [request_month] => 2019-03
    [objects] => {"35":{"31":0}}
    [request_by_name] => V
    [approved_by_name] => E
    [email] => q@gmail.com
)

первое письмо будет отправлено с содержанием Q отправлено письмо на E второе письмо будет таким же, как и первое содержимое, а содержание должно быть как - Контент V отправил электронное письмо на E

Пожалуйста, проверьте код ниже, чтобы проверить проблему.

$email_template = $email_template->row();
foreach ($approvalData as $key => $value) {
    $email = $value->email;
    // pr($value);
    $message_id_hash = md5(rand(1,100000) . $value->email . time());
    $url = base_url()."work/index/$value->request_by/$value->ID";
    $request_by = $value->request_by_name;
    $approved_by = $value->approved_by_name;
    $email_template->message = $this->common->replace_keywords(array(
        "[REQUESTER_NAME]" => $request_by,
        "[REQUEST_RECEIVER_NAME]" => $approved_by,
        "[SITE_URL]" => site_url(),
        "[MONTH]" => $period,
        "[APPROVAL_LINK]" => $url
        ),
    $email_template->message);
    $headers = array(
        "Message-ID" => $message_id_hash
        );
    $subject = "Approve request.";
    // $this->common->send_email($subject, $email_template->message, $email, $headers);
    // echo "mail send from $value->request_by_name to $value->approved_by_name";
}

1 Ответ

0 голосов
/ 03 апреля 2019

Попробуйте переместиться ниже строки внутри цикла foreach.

Необходимо сбрасывать $email_template каждый раз при отправке электронной почты.

$email_template = $email_template->row();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...