переход с mail php на smtp

12
L
На сайте с 01.02.2011
Offline
163
1585

попался сайт на джумле, с не самым лучшим хостингом. вобщем письма обратной связи сначала попадали в спам - после вообще перестали приходить. в тп посоветовали на smtp перейти.

вопрос, как это сделать? никогда такого опыта не имел, инструкций никаких не нашел.

на данный момент имею следующую систему с mail php

форма:


<div class="form1">
<form id="namephoneemail" method="post" action="mail.php">
<div class="felement3"><input type="text" name="name" required placeholder="Имя" /><br></div>
<div class="felement3"><input type="text" id="phone" required name="phone" placeholder="телефон" /><br></div>
<button class="bigfuckingbutton">Отправить заявку</button>
<div class="clearboth"></div>
<input class="checkbox" type="checkbox" name="option2" required value="Согласен">Я согласен с <a href="/">политикой конфиденциальности</a><br>
</form>

проверка на ввод:


<script>
$( document ).ready(function() {
$('#namephoneemail').submit(function(e){
//отменяем стандартное действие при отправке формы
e.preventDefault();
//берем из формы метод передачи данных
var m_method=$(this).attr('method');
//получаем адрес скрипта на сервере, куда нужно отправить форму
var m_action=$(this).attr('action');
//получаем данные, введенные пользователем в формате input1=value1&input2=value2...,
//то есть в стандартном формате передачи данных формы
var m_data=$(this).serialize();
$.ajax({
type: m_method,
url: m_action,
data: m_data,
success: function(result){
var data = {};
$('.felement3 input').each(function() {
data[$(this).attr('name')] = $(this).val();
});
if (data.name != null && data.name.length < 3 )
{
alert('Заполните поле "Имя"');
return false;
}
if (data.phone != null && data.phone.length < 3 )
{
alert('Заполните поле "Телефон"');
return false;
}
else {
alert(result);
}
}
});
});
});
</script>

сам файл отправки:

<?php
if(!empty($_POST['name']) and !empty($_POST['phone'])) {

$name = trim(strip_tags($_POST['name']));
$phone = trim(strip_tags($_POST['phone']));

$headers = "Content-type:text/html;charset=UTF-8 \r\n";
$headers .= "From:noreply@site.ru";

//блок отправки хозяину
mail('pochta@mail.ru', 'Заявка с вашего сайта', 'Имя: '.$name.'<br />Телефон: '.$phone.''
, $headers, '-fnoreply@site.ru');

//блок отправки пользователю
$info1 = "Спасибо за обращение!
мы свяжемся с вами в ближайшее время";
echo $info1;
exit;

}
?>

как это все на smtp перевести?

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#1
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
L
На сайте с 01.02.2011
Offline
163
#2

тут на первом же пункте проблема. в предложенном к скачиванию архивов нет таких файлов как class.smtp.php и class.phpmailer.php

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#3

Всё меняется, не сложно догадаться, что:

https://github.com/PHPMailer/PHPMailer/tree/master/src

Они лежат теперь тут и называются чуть по другому.

S
На сайте с 30.09.2016
Offline
469
#4

Linblack, касательно ссылки, которую привёл LEOnidUKG - PHPMailer в Джумле уже есть, его скачивать не надо.

А вообще, проще поступить таким образом: вместо фэйкового адреса noreply@site.ru завести реальный почтовый ящик на домене и прописать ему DKIM и SPF - сейчас это даже на shared-хостингах доступно. И отправлять письма от этого адреса, тогда они будут доходить до адресата. Либо второй вариант - от этого noreply @site.ru отправлять письма на реальный ящик@site.ru, а там делать переадресацию дальше, куда-то на mail.ru или вроде того.

А с отправкой через smtp Вы можете и не справиться без посторонней помощи.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M
На сайте с 04.12.2013
Offline
223
#5

В 99% случаев можно и с именем noreply создать. Это вообще правило для шареда – создавать почтовый ящик, от имени которого идет программная отправка. SPF от хостинга вообще практически никак не зависит, если IP-шник почтового сервера более-менее стабильный (даже если «плавающий», то можно использовать имя почтового сервера), только от домена. С DKIM немного посложнее, но тоже обычно все решаемо. Даже если сервер не подписывает письма, это можно делать программно. По-любому это лучше, чем все письмо отправлять программно на пыхе – тот еще изврат, чего многие не понимают.

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

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
S
На сайте с 30.09.2016
Offline
469
#6
miketomlin:
SPF от хостинга вообще практически никак не зависит

miketomlin, я не знаю, что Вы имеете в виду, но вот допустим на шареде Джино я при создании почтового ящика просто включаю 2 движочка - и всё, даже ни в какие днс-записи лезть не надо.

jpg 1.jpg
M
На сайте с 04.12.2013
Offline
223
#7

Sitealert, что написал, то и имею в виду. SPF – это чисто рес. запись домена. Ваш вариант будет работать только при условии, что домен также хостится у хостера (делегирован на DNS-серверы хостера). Даже если такого «движочка» нет, заходите у (DNS-)хостера в «управление зоной» и прописываете нужные записи вручную. Если знать, что писать, настроить не трудно.

S
На сайте с 30.09.2016
Offline
469
#8
miketomlin:
Ваш вариант будет работать только при условии, что домен также хостится у хостера (делегирован на DNS-серверы хостера).

Не морочьте голову себе и людям.

miketomlin:
Если знать, что писать, настроить не трудно.
Ну я в данном случае говорю про ТС, то есть про то, насколько просто это сделать юзеру, не обременённому специальными познаниями.
M
На сайте с 04.12.2013
Offline
223
#9

P.S. Если нет «движочка» DKIM, тут немного сложнее, но тоже обычно решаемо, – в пред. посте написал, каким образом.

Sitealert:
Не морочьте голову себе и людям.

Это было важное условие. Если домен к примеру хостится у регистратора, сколько не верти ваши «движочки», толку будет ноль! Я объяснил, что просто нужно зайти с правильного конца, тогда все заработает.

Sitealert:
Ну я в данном случае говорю про ТС, то есть про то, насколько просто это сделать юзеру, не обременённому специальными познаниями.

Ну ОК. Но все же с прописыванием SPF даже домохозяйки могут справиться. Объем знаний тут большой не нужен. Их получить нетрудно.

S
На сайте с 30.09.2016
Offline
469
#10
miketomlin:
Это было важное условие. Если домен к примеру хостится у регистратора, сколько не верти ваши «движочки», толку будет ноль! Я объяснил, что просто нужно зайти с правильного конца, тогда все заработает.

Завязывайте фантазировать уже. Хостер не идиот. Он эти движочки программирует сам для тех, кто хостит домен у него. Чтобы клиент не заморачивался изучением доков. А для продвинутых есть возможность прописать запись самостоятельно в соответствующей панели.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий