Php Opencart在自定义脚本中发送电子邮件
我的opencart中有一个脚本,是我自己编写的,我想让它发送一封电子邮件,但我认为当我尝试获取电子邮件参数时,它们返回Php Opencart在自定义脚本中发送电子邮件,php,scripting,opencart,Php,Scripting,Opencart,我的opencart中有一个脚本,是我自己编写的,我想让它发送一封电子邮件,但我认为当我尝试获取电子邮件参数时,它们返回null 这是我的密码: $email_to = "somewhere@example.com"; $config = new Config(); $mail = new Mail(); $mail->protocol = $config->get('config_mail_protocol'); $mail->pa
null
这是我的密码:
$email_to = "somewhere@example.com";
$config = new Config();
$mail = new Mail();
$mail->protocol = $config->get('config_mail_protocol');
$mail->parameter = $config->get('config_mail_parameter');
$mail->hostname = $config->get('config_smtp_host');
$mail->username = $config->get('config_smtp_username');
$mail->password = $config->get('config_smtp_password');
$mail->port = $config->get('config_smtp_port');
$mail->timeout = $config->get('config_smtp_timeout');
$mail->setTo($email_to);
$mail->setFrom("nuno@[mydomain].com");
$mail->setSender("nuno@[mydomain].com");
$mail->setSubject("test send mail");
$mail->setText("test message body text");
$mail->send();
当我尝试调用时:
echo$config->get('config_-mail_-protocol')
返回null
不要创建Config
的新实例,只需调用
$email_to = "somewhere@example.com";
$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');
$mail->setTo($email_to);
$mail->setFrom("somewhere@example.com");
$mail->setSender("somewhere@example.com");
$mail->setSubject("test send mail");
$mail->setText("test message body text");
$mail->send();
我在用前面提到的代码发送邮件时遇到了问题。Opencart邮件变量自Opencart 2以来已更改 这是opencart 2.3的代码
$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$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($order_info['email']);
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($this->load->view('mail/order', $data));
$mail->setText($text);
$mail->send();
代码块直接从catalog/model/checkout/order.php
我希望有人会觉得这很有用。WoW,这刚刚救了我一天,先生:D,解决了我的有用问题:DBtw,可以调用$mail和我创建的自定义类中的配置吗?@nunong21
$mail
是作为mail
类的一个新实例创建的,所以是的。当您的类扩展Controller
时,它还可以通过$this->Config
属性访问Config
。如果它不扩展控制器
,那么您必须将$registry
传递给它的构造函数,并实现与控制器
类相同的神奇\uu get()
和\uu set()
方法。