Перейти к содержанию
Форум поддержки пользователей VamShop

/checkout_process.php


Рекомендуемые сообщения

/checkout_process.php

Не удалось отправить email.

Ошибка: Произошла ошибка при инициализации Mail функции.

В чем грабли?

Ссылка на сообщение
Поделиться на другие сайты

Почта не приходит или приходит, но всё равно вылазит ошибка?!

Грабли в настройках сервера, значит с отправкой почты что-то не так.

В Админке - Настройки - Основные - Настройка email в опции Способ отправки поставьте mail иди sendmail.

Либо можно поставить smtp и нижу казать сервер, логин и пароль любого внешнего smtp сервера.

Ссылка на сообщение
Поделиться на другие сайты

Почта несмотря на сообщение доходит правильно.

Метод оптравки стоял мейл

Проблема связана с настройками на сервере? Спрашивать с них?

Ссылка на сообщение
Поделиться на другие сайты

Если почта всё-таки доходит.

Можно тогда просто убрать это сообщение об ошибке.

В /inc/vam_php_mail.inc.php заменить внизу:


echo TEXT_PHP_MAILER_ERROR;

echo TEXT_PHP_MAILER_ERROR1 . $mail->ErrorInfo;

exit;
[/code] на:
[code]
// echo TEXT_PHP_MAILER_ERROR;

// echo TEXT_PHP_MAILER_ERROR1 . $mail->ErrorInfo;

// exit;

Ссылка на сообщение
Поделиться на другие сайты

Вот что ответил хостинг:

"У вас где то либо через веб интерфейс, либо в конфигурационном файле

должна выставляться переменная EMAIL_TRANSPORT

переключите ее из режима sendmail в режим mail"

Интересно, это он имел ввиду "Способ отправки E-Mail

sendmail

smtp

mail", но так ведь и при активном радиобоксе мейл также выдаётся ошибка

Ссылка на сообщение
Поделиться на другие сайты

Ну кагбэ хостинг тычит на вас :/

"Дано - дока по php

http://php.net/manual/en/function.mail.php

bool *mail* ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

http://shop.stereoart.com.ua/test.php

<?php

echo mail('support@hvosting.ua','test','test_body');

?>

выполняется, письмо доходит, на экране 1 (т.е. true)

    Return Values

Returns *TRUE* if the mail was successfully accepted for delivery, *FALSE* otherwise.

письмо доходит, функция сообщает что письмо принято.

Думаю вам стоит обратиться в техподдержку разработчиков этого магазина."

Ссылка на сообщение
Поделиться на другие сайты

Я могу лишь сказать, что в магазине используется для отправки почты библиотека PHPMailer - http://phpmailer.sourceforge.net, которой миллионы людей пользуются по всему миру и я думаю, что PHPMailer написан по всем правилам и в нём ошибок нет.

Ссылка на сообщение
Поделиться на другие сайты

Ответ хостинга:

"Нет, я считаю что это признак недоконфигуренного магазина.

основные правки в конце концов в

inc/vam_php_mail.inc.php

попробуйте сделать заказ еще раз.

То что функция mail, и как следствие PHPMailer и vam_php_mail.inc.php

не могут отправить письмо _никому_ это нормально.

Дальше разбирайте его на запчасти сами."

После манипуляций хостинга теперь вместо "Не удалось отправить email.

Ошибка: Произошла ошибка при инициализации Mail функции."

выводится "From: shop@stereoart.com.ua

To: shop@stereoart.com.uaСтереоочки анаглифные и поляризационные — Shop.stereoart.com.ua

vam_php_mail.inc.php = 1

From: shop@stereoart.com.ua

To:

vam_php_mail.inc.php = Не удалось отправить email.

Ошибка: Произошла ошибка при инициализации Mail функции."

Что-то сказать можете?

Ссылка на сообщение
Поделиться на другие сайты

Ничего сказать не могу.

Для пробы поставьте на другом хостинге, да посмотрите, будет ли там такая ошибка.

Да и всегда есть возможность для отправки использовать любой внешний smtp сервер, если со способом mail проблемы.

Ссылка на сообщение
Поделиться на другие сайты
Алексей Герцев

такая же проблема, хостер пишет

Если мы правильно поняли, то речь идет о отправке почтовых сообщений

скриптами сайта. В данном случае необходимо использовать функцию php

mail(); Но на всех серверах виртуального хостинга действуют ограничения,

описанные в разделе "Ограничения на выполнение скриптов" на странице:

........................

Например, обычно скрипт отправки почтовых сообщений отправляет сразу два

письма, первое администратору, второе пользователю, что неприемлемо, так

как между отправкой писем должно пройти не менее 0.3 секунд. Для

исправления данной ситуации после функции mail(); необходимо добавить

строку вида:  usleep(300000);

Так вот интересует где конкретно можно это добавить?

Ссылка на сообщение
Поделиться на другие сайты

В /send_order.php наверное после первой строки с vam_php_mail

Но если почта вообще не отправляется, usleep не поможет.

Используйте любой внешний smtp сервер для отправки почты.

Ссылка на сообщение
Поделиться на другие сайты
Алексей Герцев

вы знаете для mail и sandmail проблема решилась. потому как изначально они работали некорректно, сейчас протестировал несколько раз и не одной ошибки не было, а до этого корректно завершался. один из десяти - пятнадцати заказов. Дело все в том, что изначально (первые полгода) корректно на хостинге работал только smtp, а потом резко перестал ни по 25 порту не по 2525 не по 465 с ssl - ответ один ошибка smtp-хост не доступен, причем хостер заверяет что все порты открыты,и в самом деле ведь со своего почтового клиента  я отправляю письма спокойно через его smtp. Может подскажите в чем может быть проблема?

Ссылка на сообщение
Поделиться на другие сайты

Я не в курсе, скрипт использует те данные, что Вы вводите.

Если работает mail (sendmail), оставляйте просто рабочий вариант.

Без разницы ведь, каким способом отправлять.

Ссылка на сообщение
Поделиться на другие сайты
Алексей Герцев

Да я же написал, только поставил задержку usleep(400000). Агава отключила доступ к smtp - сервису для скриптов. так что только sendmail, сейчас все прекрасно работает.

Ссылка на сообщение
Поделиться на другие сайты
Алексей Герцев

нет ничего дополнительного не делал, в магазине выбрал отправку через mail и работаю на нем, а sendmail тоже не работал - вообще никак, но при добавлении usleep тестирование ошибок не показало, причем письма отправились как из админки - так и при тестовом прогоне заказов. причем usleep я сам добавил после первого вызова функции mail, я в админ с тех.поддержки поставил еще и после второго вызова, они  там друг за другом сразу идут. добавлять в /send_order.php

вот так

// send mail to admin

vam_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, EMAIL_BILLING_ADDRESS, STORE_NAME, EMAIL_BILLING_FORWARDING_STRING, $order->customer['email_address'], $order->customer['firstname'], '', '', $order_subject, $html_mail, $txt_mail);

usleep(400000);

// send mail to customer

vam_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $order->customer['email_address'], $order->customer['firstname'].' '.$order->customer['lastname'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', $order_subject, $html_mail, $txt_mail);

usleep(400000);

Ссылка на сообщение
Поделиться на другие сайты
  • 1 year later...

нет ничего дополнительного не делал, в магазине выбрал отправку через mail и работаю на нем, а sendmail тоже не работал - вообще никак, но при добавлении usleep тестирование ошибок не показало, причем письма отправились как из админки - так и при тестовом прогоне заказов. причем usleep я сам добавил после первого вызова функции mail, я в админ с тех.поддержки поставил еще и после второго вызова, они  там друг за другом сразу идут. добавлять в /send_order.php

вот так

// send mail to admin

vam_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, EMAIL_BILLING_ADDRESS, STORE_NAME, EMAIL_BILLING_FORWARDING_STRING, $order->customer['email_address'], $order->customer['firstname'], '', '', $order_subject, $html_mail, $txt_mail);

usleep(400000);

// send mail to customer

vam_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $order->customer['email_address'], $order->customer['firstname'].' '.$order->customer['lastname'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', $order_subject, $html_mail, $txt_mail);

usleep(400000);

Данную настройку надо дабавить в ответы по агаве - пока это не сделал - таже ошибка была

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...