Opencart: Как добавить CC и BCC по электронной почте? - PullRequest
0 голосов
/ 06 сентября 2018

В настоящее время я разрабатываю модуль электронной почты на opencart, и мне нужно добавить cc и bcc на мою электронную почту. Как я могу добавить cc и BCC на opencart 3? спасибо

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Как вы упомянули, вы можете отредактировать smtp.php и добавить

$header .= 'Cc: "' . $cc . '" <' . $cc . '>' . PHP_EOL;

но он просто добавит cc в заголовок и не отправит реальное сообщение. Следовательно, вы также должны отредактировать фактическую отправляющую часть, которая находится где-то в строке 253–287. Вы должны добавить еще один набор отправляющего кода, что-то вроде этого:

            fputs($handle, 'RCPT TO: <' . $cc . '>' . "\r\n");

            $reply = '';

            while ($line = fgets($handle, 515)) {
                $reply .= $line;

                if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
                throw new \Exception('Error: RCPT TO CC not accepted from server!');
            }

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

0 голосов
/ 06 сентября 2018

В вашем модуле найдите:

$mail->send();

Добавить после:

$emails = array(
    'test@gmail.com',
    'test2@gmail.com'
);

foreach ($emails as $email) {
    if ($email && filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $mail->setTo($email);
        $mail->send();
    }
}
...