我无法理解这个错误。任何人都可以帮助我。
PHP Fatal error: Uncaught exception 'Exception' with message 'Error: E-Mail to required!' in /home/projects/public_html/system/storage/modification/system/library/mail.php:94
Stack trace:
#0 /home/projects/public_html/vqmod/vqcache/vq2-system_storage_modification_catalog_model_checkout_order.php(1619): Mail->send()
#1 [internal function]: ModelCheckoutOrder->addOrderHistory(145031, 2440, '<p>Hi ,</p>\r\n\r\n...', true, true)
#2 /home/projects/public_html/vqmod/vqcache/vq2-system_storage_modification_system_engine_loader.php(150): call_user_func_array(Array, Array)
#3 [internal function]: Loader->{closure}(Array)
#4 /home/projects/public_html/system/engine/proxy.php(13): call_user_func(Object(Closure), Array)
#5 /home/projects/public_html/vqmod/vqcache/vq2-catalog_controller_api_order.php(841): Proxy->__call('addOrderHistory', Array)
#6 /home/projects/public_html/vqmod/vqcache/vq2-catalog_controller_api_order.php(841): Proxy->addOrderHistory(145031, 2440, '<p>Hi ,</p>\r\n\r\n...', true, true)
#7 [internal function]: Controller in /home/projects/public_html/system/storage/modification/system/library/mail.php on line 94
答案 0 :(得分:0)
似乎在新的OC版本中,有人忘记将mail_smtp_host更改为ALL文件中的mail_smtp_hostname! 但我并不感到惊讶,OC中的SMTP邮件传输从一开始就没有好转:P
您有两个选项可以查找config_mail_smtp_host并将其更改为所有文件中的config_mail_smtp_hostname(大约30个)或等到2.0.2.1版本,因为它似乎已在那里修复。 还有第三种方法,临时将admin设置文件中的config_mail_smtp_hostname恢复为config_mail_smtp_host(只需编辑2个文件)。
我在这里发布了最后一个解决方案,因为它是最简单的解决方案。
编辑此文件admin / controller / setting / setting.php并找到以下代码:
`if (isset($this->request->post['config_mail_smtp_hostname'])) {
$data['config_mail_smtp_hostname'] = $this->request->post['config_mail_smtp_hostname'];
else {
$data['config_mail_smtp_hostname'] = $this->config->get('config_mail_smtp_hostname');
} `if (isset($this->request->post['config_mail_smtp_host'])) {
$data['config_mail_smtp_host'] = $this->request->post['config_mail_smtp_host'];
else {
$data['config_mail_smtp_host'] = $this->config->get('config_mail_smtp_host');
}
现在将所有config_mail_smtp_hostname更改为config_mail_smtp_host,因此代码如下所示: 代码:
if (isset($this->request->post['config_mail_smtp_host'])) {
$data['config_mail_smtp_host'] = $this->request->post['config_mail_smtp_host'];
else {
$data['config_mail_smtp_host'] = $this->config->get('config_mail_smtp_host');
}
现在编辑此文件: 管理员/视图/模板/设置/ setting.tpl 找到这段代码:
<label class="col-sm-2 control-label" for="input-mail-smtp-hostname"><span data-toggle="tooltip" title="<?php echo $help_mail_smtp_hostname; ?>"><?php echo $entry_mail_smtp_hostname; ?></span></label>
<div class="col-sm-10">
<input type="text" name="config_mail_smtp_hostname" value="<?php echo $config_mail_smtp_hostname; ?>" placeholder="<?php echo $entry_mail_smtp_hostname; ?>" id="input-mail-smtp-hostname" class="form-control" />
并将其更改为:
<label class="col-sm-2 control-label" for="input-mail-smtp-host"><span data-toggle="tooltip" title="<?php echo $help_mail_smtp_hostname; ?>"><?php echo $entry_mail_smtp_hostname; ?></span></label>
<div class="col-sm-10">
<input type="text" name="config_mail_smtp_host" value="<?php echo $config_mail_smtp_host; ?>" placeholder="<?php echo $entry_mail_smtp_hostname; ?>" id="input-mail-smtp-host" class="form-control" />
这应该可以解决问题。 啊,你需要再次在管理员中设置SMTP主机名!
答案 1 :(得分:0)
一个或多个修改正在影响此文件:
catalog_model_checkout_order.php
你有:
Mail->send()
但似乎在这个档案上遗漏了这样的东西:
$mail->setTo($order_info['email']);
您可以编辑以下文件:
vqmod/vqcache/vq2-system_storage_modification_catalog_model_checkout_order.php
搜索Mail->send()
的所有出现,特别是1619行附近的出现。
必须$mail->setTo
附近,如果它不存在,请添加自己:$mail->setTo('your-email@example.com');
如果这解决了您的问题,您必须检查修改以找出导致此问题的修改。
请注意,上面的文件是一个临时文件,当您清除缓存时会丢失。