Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Не приходят письма на почту


Sheedy
 Share

Recommended Posts

Добрый вечер!  
Сайт: https://mertenshop.com.ua
Ostore 2.3
Сделал форму для быстрого заказа, но не получается отправить данные на почту. Помогите новичку, пожалуйста! 
Работает скрипт открытие и закрытие popup окошока, а с отправкой письма на почту не выходит. Я не могу понять, где проблема, потому что отдельно от всего сайта всё работает и приходит (https://mertenshop.com.ua/test/html-form.html) , а в шапке сайта ничего не происходит (

<div class="callback-request">
								<div class="callback-button" rel="popup1"> Заказать звонок </div>

							<!--POPUP-->
							<div class="overlay_popup"></div>	
						<div class="popup-container"id="popup1">
							
							<form class="callback-form" id="callback-form" name="callback-form">
									<div class="form-row">
										<label class="name-icon" for="name"></label>
										<input type="text" class="send-field" name="name" placeholder="Ваше имя" value="" id="name">
									</div>
									<div class="form-row">
										<label class="phone-icon" for="phone"></label>
										<input type="text" placeholder="Ваш телефон" value="" id="phone" name="phone"  class="send-field phone">
									</div>

						<div class="form-submit">
							<input type="submit" value="заказать" class="submit-button send-field" name="callback_submit">
						<div class="results1"></div>

								<div class="popup-form-preload"></div>
							</form>
							</div>
						</div>
						<div class="popup-result">
							<div class="close">+</div>
								<div class="popup-result-content">Ваш запрос успешно отправлен!</div>
						</div>
						<!--POPUP-->
					</div>
<?php

$recepient = "[email protected]";
$siteName = "Ajax-форма";

$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = "Имя: $name \nТелефон: $phone";

$pagetitle = "Заявка с сайта \"$siteName\"";
 mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient"); 

?>
//открыть и закрыть popup 
	$('.callback-button').click(function() {
    var popup_id = $('#' + $(this).attr("rel"));
    $(popup_id).show();
    $('.overlay_popup').show();
})
$('.overlay_popup').click(function() {
    $('.overlay_popup, .popup-container').hide();
})
// Отправка заявки 
$(document).ready(function() {
	$('#callback-form').submit(function() { // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
		if (document.form.name.value == '' || document.form.phone.value == '' ) {
			valid = false;
			return valid;
		}
		$.ajax({
			type: "POST",
			url: "/formpopup/mail.php",
			data: $(this).serialize()

		}).done(function() {
			
			$(this).find('input').val('');
			$('#callback-form').trigger('reset');
		});
		return false;
	});
});
/*
// Закрыть попап «спасибо»
$('.close').click(function() { // по клику на крестик
	$('.popup-result').fadeOut();
});

$(document).mouseup(function (e) { // по клику вне попапа
    var popup = $('.popup');
    if (e.target!=popup[0]&&popup.has(e.target).length === 0){
        $('.popup-result').fadeOut();
    }
});*/

// Маска ввода номера телефона (плагин maskedinput)
$(function($){
	$('[name="phone"]').mask("+38(999) 999-9999");
});

 

Link to comment
Share on other sites


в opencart есть встроенная библиотека для отправки писем, а SMTP почта настраивается в админке.

Возьмите пример отправки письма, например из catalog/model/checkout/order.php

$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($this->load->view('mail/order', $data));
$mail->setText($text);
$mail->send();

так в 2018 году отправляются письма.

а о функции mail лучше забыть.

Link to comment
Share on other sites

4 часа назад, TeslaFeo сказал:

в opencart есть встроенная библиотека для отправки писем, а SMTP почта настраивается в админке.

Возьмите пример отправки письма, например из catalog/model/checkout/order.php

$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($this->load->view('mail/order', $data));
$mail->setText($text);
$mail->send();

так в 2018 году отправляются письма.

а о функции mail лучше забыть.

А есть документация по встроенной библиотеке, а то нужно разобраться сначала) 

Link to comment
Share on other sites


3 часа назад, Sheedy сказал:

А есть документация по встроенной библиотеке, а то нужно разобраться сначала) 

это PHPMailer. По нему есть инфа в гугле :)

По названиям методов понятно, что зачем нужно.

На деле, всё примерно так:
 

$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
// всё, что выше, настраивается в админке. Код можно просто скопировать и не вникать

$mail->setTo($this->config->get('config_email'));  // email получателя.
$mail->setFrom($this->config->get('config_email'));  //  email отправителя.
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8')); // Имя отправителя
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));  //  Тема письма
$mail->setHtml($this->load->view('mail/order', $data));  html шаблон письма
$mail->setText($text); //  альтернативный текст письма. Будет отображаться в случае, если почновый клиент получателя не поддерживает html письма.
$mail->send();

Вот и вся документация :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.