如何修复OpenCart中mail()错误的错误参数?

时间:2014-10-04 13:04:27

标签: php paypal opencart

我遇到OpenCart的问题,当使用借记卡/信用卡退房时使用PayPal Pro时按“确认订单”时,会出现“请稍候”消息,然后消失而不会进入确认页面。电子邮件将发送给客户和所有者,付款,然后到达确认页面,您必须再次按“确认订单”。这会再次将钱汇给PayPal,但不会发送额外的电子邮件,并且第二个订单不会出现在OpenCart记录中。

第一次单击时,会生成以下错误消息三次:

PHP Warning:  mail() [<a href='function.mail'>function.mail</a>]: Bad parameters to mail() function, mail not sent. in /.../store/system/library/mail.php on line 148

但是,电子邮件实际上已发送。在第二次单击时,不会生成任何错误。

我已经检查了电子邮件设置,它们似乎都是正确的(我在“邮件参数”框中尝试了info@domain.com-finfo@domain.com)并且没有任何更改。我使用的是邮件选项而不是SMTP。

主持人是GoDaddy,我知道有时候电子邮件会有点搞笑。我尝试在PHP中使用代码,但我找不到参数变量实际设置的区别,我认为它是从OpenCart管理员的设置中获取的。

我尝试从mail.php中的mail()函数中删除参数选项,并且首次点击时结帐工作正常,但邮件根本没有发送,所以我很确定修复错误会修复结帐问题,我只是不确定下一步该尝试什么。

编辑:

我一直在尝试发送电子邮件的行。 OpenCart最初设置为:

mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);

为了确保邮件实际上是这样的,我将其更改为:

mail('myaddress@email.com', 'Test', 'Hello', 'From: info@domain.com', '-finfo@domain.com');

那很有用。我点击了“确认订单”,它就像它应该的那样工作。然后,我尝试了各种组合,删除变量并将其替换为我的测试中的详细信息。首先,我添加了$ this-&gt;参数,认为它是最可能的罪魁祸首但是运行正常。我继续用其他变量做这个,但每次都失败了。

1 个答案:

答案 0 :(得分:2)

店主已为要发送的订单添加了一些额外的电子邮件地址。这些电子邮件地址应采用address1@email.com,address2.email.com等格式

相反,逗号之后有一个空格,这完全抛出了OpenCart。应该可以在OpenCart中添加某种修复来忽略电子邮件字段中的空格,但是现在,它们都在工作。