Opencart 3.0.2.0用mail()函数发送邮件

Opencart 3.0.2.0 sending email with mail() funtion

我想向所有订阅我的时事通讯的人发送一封电子邮件。为了做到这一点,我在 catalog->controller->common->footer.php.

中创建的方法中编写了以下代码
         $to = "mymail@yahoo.com";
         $subject = "-5% Έκπτωση στο ioannoustores.com";
         
         $message = "Χρησιμοποιήστε το εκπτωτικό κουπόνι στις αγορές σας και κερδίστε 5% έκπτωση. Ο κωδικός σας είναι: " . $res . " και ισχύει για 7 ημέρες.";
         
         
         $header = "From:info@ioannoustores.com \r\n";
         
         
         
         mail($to,$subject,$message,$header);

我在 opencart 2.1 中使用了完全相同的代码并且它有效但在 3.0.2.0 中它不起作用。有人可以帮我吗?

$to = "mymail@yahoo.com";
         $subject = "-5% Έκπτωση στο ioannoustores.com";
         
         $message = "Χρησιμοποιήστε το εκπτωτικό κουπόνι στις αγορές σας και κερδίστε 5% έκπτωση. Ο κωδικός σας είναι: " . $res . " και ισχύει για 7 ημέρες.";
         
         
         $header = "From:info@ioannoustores.com \r\n";

试试这个:

$mail = new Mail($this->config->get('config_mail_engine'));
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

$mail->setTo($to);
$mail->setFrom('your@email.xxx');
$mail->setSender(html_entity_decode('Shop Name', ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject), ENT_QUOTES, 'UTF-8'));
$mail->setHtml($message);
$mail->send();