Настроил отправку почты SMTP уведомления о заказах приходят, а уведомления о просьбе перезвонить нет. В логе ошибки 2014-11-03 2:55:55 - PHP Notice: Error: MAIL FROM not accepted from server! in public_html/system/library/mail.php on line 290 2014-11-03 2:58:27 - PHP Notice: Error: EHLO not accepted from server! in public_html/system/library/mail.php on line 200 2014-11-03 2:58:37 - PHP Notice: Error: EHLO not accepted from server! in public_html/system/library/mail.php on line 200 2014-11-03 3:04:35 - PHP Notice: Error: MAIL FROM not accepted from server! in public_html/system/library/mail.php on line 290 Может кто сталкивался?
обратных звонков бывает хуча туева. Возможно, что идет попытка отправки на несуществующий адрес. А может... показать может только код.
PHP: public function send() { $this->language->load('module/callbackphone'); $sendsemail = $this->config->get('callbackphone_email'); if (!empty($sendsemail)) { $ourmail = $this->config->get('callbackphone_email'); } else { $ourmail = $this->config->get('config_email'); } $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($ourmail); $mail->setFrom('info@'.substr(preg_replace("#/$#", "", $this->config->get('config_url')), 7)); $mail->setSender('info@'.substr(preg_replace("#/$#", "", $this->config->get('config_url')), 7)); $mail->setSubject("Заказ обратного звонка"); $callbackphonename = $this->request->post['callbackphonename']; $callbackphonetel = $this->request->post['callbackphonetel']; $callbackphonecomment = $this->request->post['callbackphonecomment']; $callup = $this->request->post['callup']; $callto = $this->request->post['callto']; $email_callbackphone_name = $this->language->get('email_callbackphone_name'); $email_callbackphone_tel = $this->language->get('email_callbackphone_tel'); $email_callbackphone_comment = $this->language->get('email_callbackphone_comment'); $email_callbackphone_callup = $this->language->get('email_callbackphone_callup'); $email_callbackphone_callto = $this->language->get('email_callbackphone_callto'); $MailCom = "$email_callbackphone_name: $callbackphonename\r\n$email_callbackphone_tel: $callbackphonetel\r\n$email_callbackphone_comment: $callbackphonecomment\r\n$email_callbackphone_callup: $callup\r\n$email_callbackphone_callto: $callto"; $mail->setText(strip_tags(html_entity_decode($MailCom, ENT_QUOTES, 'UTF-8'))); if (!empty($callbackphonename) && !empty($callbackphonetel) && preg_match('/^\p{L}+$/u', $callbackphonename)) { echo $success = "Заказ обратного звонка отправлен успешно!<br />Наш менеджер Вам перезвонит."; $mail->send(); } else { echo $error = "Вы не заполнили обязательные поля!"; } Все настройки как я понимаю берутся из настроек магазина, но письма не отправляются
$sendsemail = $this->config->get('callbackphone_email'); Это не настройка магазина, а настройка модуля. Здесь и должен быть адрес получателя уведомления. Если там ПУСТО, то из настроек магазина $this->config->get('config_email')
да там пусто, все настройки берутся из настроек магазина, уведомления о заказах приходят, а уведомления о просьбе перезвонить нет.
Ну... есть еще фишечка... Код: $mail->setFrom('info@'.substr(preg_replace("#/$#", "", $this->config->get('config_url')), 7)); $mail->setSender('info@'.substr(preg_replace("#/$#", "", $this->config->get('config_url')), 7)); Попробуйте это убрать... потому что это неверный адрес
Ошибка в логах сменилась на 2014-11-04 14:45:03 - PHP Notice: Error: E-Mail from required! in public_html/system/library/mail.php on line 56
Вы и дальше будете использовать метод тыка? Я вам попытаюсь объяснить, что здесь происходит Код: $mail->setFrom('info@'.substr(preg_replace("#/$#", "", $this->config->get('config_url')), 7)); $mail->setSender('info@'.substr(preg_replace("#/$#", "", $this->config->get('config_url')), 7)); Устанавливаются два поля заголовков Код: $header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline; Т.е. эти два поля должны существовать если $this->sender - это всего лишь текстовое(строковое значение), то $this->from - это адрес. From - может быть как от себя к себе Отправьте самим себе письмо - посмотрите на служебные заголовки - поймете о чем я говорю