prestashop 1.7无法发送电子邮件

时间:2017-09-13 10:35:09

标签: prestashop-1.7

this is some code of my contact form 

发送电子邮件。

在prestashop管理页面中测试的电子邮件发送工作正常。

但是联系表格和注册表格根本不起作用。

谁能帮助我?

if ($ct->id) {

                $lastMessage = CustomerMessage::getLastMessageForCustomerThread($ct->id);
                $testFileUpload = (isset($file_attachment['rename']) && !empty($file_attachment['rename']));

                // if last message is the same as new message (and no file upload), do not consider this contact
                if ($lastMessage != $message || $testFileUpload) {
                    $cm = new CustomerMessage();
                    $cm->id_customer_thread = $ct->id;
                    $cm->message = $message;
                    if ($testFileUpload && rename($file_attachment['tmp_name'], _PS_UPLOAD_DIR_ . basename($file_attachment['rename']))) {
                        $cm->file_name = $file_attachment['rename'];
                        @chmod(_PS_UPLOAD_DIR_ . basename($file_attachment['rename']), 0664);
                    }
                    $cm->ip_address = (int)ip2long(Tools::getRemoteAddr());
                    $cm->user_agent = $_SERVER['HTTP_USER_AGENT'];
                    if (!$cm->add()) {
                        $this->context->controller->errors[] = $this->trans('An error occurred while sending the message.', array(), 'Modules.Contactform.Shop');
                    }
                } else {
                    $mailAlreadySend = true;
                }
            } else {
                $this->context->controller->errors[] = $this->trans('An error occurred while sending the message.', array(), 'Modules.Contactform.Shop');
            }
        }

        if (!count($this->context->controller->errors) && empty($mailAlreadySend)) {
            $var_list = [
                '{order_name}' => '-',
                '{attached_file}' => '-',
                '{message}' => Tools::nl2br(stripslashes($message)),
                '{email}' =>  $from,
                '{product_name}' => '',
            ];

            if (isset($file_attachment['name'])) {
                $var_list['{attached_file}'] = $file_attachment['name'];
            }

            $id_product = (int)Tools::getValue('id_product');

            if (isset($ct) && Validate::isLoadedObject($ct) && $ct->id_order) {
                $order = new Order((int)$ct->id_order);
                $var_list['{order_name}'] = $order->getUniqReference();
                $var_list['{id_order}'] = (int)$order->id;
            }

            if ($id_product) {
                $product = new Product((int)$id_product);
                if (Validate::isLoadedObject($product) && isset($product->name[Context::getContext()->language->id])) {
                    $var_list['{product_name}'] = $product->name[Context::getContext()->language->id];
                }
            }

            if (empty($contact->email)) {
                Mail::Send(
                    $this->context->language->id,
                    'contact_form',
                    ((isset($ct) && Validate::isLoadedObject($ct)) ? $this->trans('Your message has been correctly sent #ct%thread_id% #tc%thread_token%', array('%thread_id%' => $ct->id, '%thread_token%' => $ct->token), 'Emails.Subject') : $this->trans('Your message has been correctly sent', array(), 'Emails.Subject')),
                    $var_list,
                    $from,
                    null,
                    null,
                    null,
                    $file_attachment
                );
            } else {
                if (!Mail::Send(
                    $this->context->language->id,
                    'contact',
                    $this->trans('Message from contact form', array(), 'Emails.Subject').' [no_sync]',
                    $var_list,
                    $contact->email,
                    $contact->name,
                    null,
                    null,
                    $file_attachment,
                    null,
                    _PS_MAIL_DIR_,
                    false,
                    null,
                    null,
                    $from
                ) || !Mail::Send(
                    $this->context->language->id,
                    'contact_form',
                    ((isset($ct) && Validate::isLoadedObject($ct)) ? $this->trans('Your message has been correctly sent #ct%thread_id% #tc%thread_token%', array('%thread_id%' => $ct->id, '%thread_token%' => $ct->token), 'Emails.Subject') : $this->trans('Your message has been correctly sent', array(), 'Emails.Subject')),
                    $var_list,
                    $from,
                    null,
                    null,
                    null,
                    $file_attachment,
                    null,
                    _PS_MAIL_DIR_,
                    false,
                    null,
                    null,
                    $contact->email
                )) {
                    //

//

   $this->context->controller->errors[] = $this->trans('An error occurred while sending the message.', array(), 'Modules.Contactform.Shop');
                }
            }
        }

        if (!count($this->context->controller->errors)) {
            $this->context->controller->success[] = $this->trans('Your message has been successfully sent to our team.', array(), 'Modules.Contactform.Shop');
        }
    }

0 个答案:

没有答案