powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Отпрака письма
18 сообщений из 18, страница 1 из 1
Отпрака письма
    #39605380
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, такая вот задача... От веба вообще далек, но вот нужно...
В общем у меня такая задача, сделать сайт на 3 странички, и нужен он мне только в локальной сети, машин 10-20 не больше, публиковать его в вебе не вижу смысла, тут тебе и домен и хостинг и прочее. Но, извне то доступа к нему не надо, но вот отсылать с него почтовые сообщения хотелось бы.
Задача: пользователь вводит в поле e-mail, кликает по кнопке, и на данный адрес отправляется заготовленное письмо.
Код: html
1.
2.
3.
<form action="js/email.php" method= "POST">
<p>Email: <input type="email" name="email">
<input type="submit" value="Жмакни меня"></p>


С кодом php совсем плохо, дайте пожалуйста ссылки где копать. И еще одна проблема, ради эксперимента пробовал создавать типа формы обратной связи, она мне не подходит, но все же. Я использую XAMPP, он просто эмулирует отправку, и создает просто текстовые сообщения в директории \xampp\mailoutput\mail-20180221-0840-904000.txt. Есть ли в этом направление решение? Спасибо
...
Рейтинг: 0 / 0
Отпрака письма
    #39605387
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, было бы хорошо просто по нажатию отправить письмо, но может можно как заготовку впихнуть в почтовую программу? Чтобы почтовик открылся, а там уже готовая заготовка и пользователю останется нажать только "Отправить" (заодно, чтобы подтягивался именно почтовый адрес пользователя)? Почтовая программа стоит у всех одинаковая.
...
Рейтинг: 0 / 0
Отпрака письма
    #39605495
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stang сайт на 3 страничкиStangЗадача: пользователь вводит в поле e-mail, кликает по кнопке, и на данный адрес отправляется заготовленное письмо.Начните с сервера, который может и умеет отправлять настоящие письма настоящим получателям. Под винду это может быть и какое-то решение с использованием стороннего SMTP (например, с использованием почтового сервера интернет-провайдера или локального почтового сервера организации). Насколько помню, такой вариант настраивается где-то в php.ini. Под линуксами оно попроще, конечно.

Stangради эксперимента пробовал создавать типа формы обратной связи, она мне не подходитПочему не подходит? Смысл тот же. Только в ФОС обычно адрес "To" жестко задан, а в Вашем случае его следует брать из $_POST['email'] - типичная радость спам-рассыльщиков.


StangВообще, было бы хорошо просто по нажатию отправить письмо, но может можно как заготовку впихнуть в почтовую программу? Чтобы почтовик открылся, а там уже готовая заготовка и пользователю останется нажать только "Отправить" (заодно, чтобы подтягивался именно почтовый адрес пользователя)? Почтовая программа стоит у всех одинаковая. Полистайте инструкцию к оной почтовой программе, поищите тему "шаблоны писем" или что-то вроде того.
Ну и пока не ясно, кто и куда нажимать должен, чтобы это пока непонятное для нас "оно" смогло запустить неизвестную нам почтовую программу и передать ей вполне понятные инструкции. Такой вариант в принципе реализуем, видел похожее на The Bat!, например (то была софтина на делфи писаная).
...
Рейтинг: 0 / 0
Отпрака письма
    #39605544
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю скрипт звонков. Продажник на каком то этапе получает отворот, его мягко посылают, и предлагают отправить свои предложения на почту. Диктуют почту, продажник вбивает ее в поле, и жмет кнопку отправить.
Я тут к XAMPP добавил почтовик Mercury, по идее он должен теперь работать как почтовый сервер. Теперь у меня проблема с самой логикой и кодом, наверное больше с кодом.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php
$email = $_POST['email'];
$email = htmlspecialchars($email);
$email = urldecode($email);
$email = trim($email);
if (mail($email, "Предложение Продажника", "E-mail: ".$email ,"From: for@gmail.com \r\n")){ 
echo "Сообщение успешно отправлено"; 
} else { 
echo "При отправке сообщения возникли ошибки";
}
?>


При отработке получается вот так:
авторСообщение успешно отправлено
...
Рейтинг: 0 / 0
Отпрака письма
    #39605557
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, если перевести эти кракадзябы, то сообщение ушло успешно... Только куда??
По моему, в никуда:
авторTo:
Subject: Предложение УкрТелекома
From: mirgorodfor@gmail.com

E-mail:
...
Рейтинг: 0 / 0
Отпрака письма
    #39605596
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stang,

В поиск по фразе "mail subject base64 encode"
...
Рейтинг: 0 / 0
Отпрака письма
    #39605598
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StangТолько куда??И "ушло ли вообще", да? Этими вопросами PHP не занимается, в логах почтовика смотрите. PHP только отдает письмо MTA (почтовой программе) для отправки.
...
Рейтинг: 0 / 0
Отпрака письма
    #39605609
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
я не могу понять, пусть во вне оно не уходит, там надо с настройками сервера поиграться. Но что-то у меня с кодом не правильно, хоть в логах ошибки вроде и нет, но я и не вижу в уходящей почте адресата, поле To: пустое. а вот отправитель, я, присутствует, и тело письма есть.
...
Рейтинг: 0 / 0
Отпрака письма
    #39605651
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С кодировкой разобрался, помогло после добавления в код, в самом начале:
Код: php
1.
2.
error_reporting(-1);
header('Content-Type: text/html; charset=utf-8');


И на всякий прописал кодировку и в .htaccess, хотя я думаю на локальной машине он и не нужен.
Разобрался, в принципе, и с отправкой, не знаю в чем была проблема, сейчас есть и отправитель и получатель.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?php
error_reporting(-1);
header('Content-Type: text/html; charset=utf-8');

$email = $_POST['email'];
$email = htmlspecialchars($email);
$email = urldecode($email);
$email = trim($email);

$subject = 'Предложение Продажника';
$message = 'Купи слона';
$headers = 'From: for@gmail.com \r\n';

if (mail($email, $subject, $message, $headers)){ 
echo "Сообщение успешно отправлено"; 
} else { 
echo "При отправке сообщения возникли ошибки";
}
?>


Теперь буду ковырять настройки smpt.
...
Рейтинг: 0 / 0
Отпрака письма
    #39605661
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stang,

Предложение оформить заголовок Subject в соответствии со стандартами решили отложить до того момента, когда обнаружится, что значительная часть писем падает в спам? ;-)
Впрочем, недостает ещё нескольких полезных заголовков, таких как Content-Type и MIME-Version.
Заголовок "From" часто требует отдельного обдумывания, когда оказывается, что письма не доходят до адресата. В ряде случаев удобнее использовать "Reply-To".

ИМХО абсолютно лишние строчки:автор
Код: php
1.
2.
$email = htmlspecialchars($email);
$email = urldecode($email);

Почтовый адрес не должен содержать таких символов, которые как-то могут попадать под действие оных функций.

Однако, не хватает проверки валидности e-mail и формирования соответствующего сообщения об ошибке. Например, когда пользователь напишет в поле "на деревню бабушке" или, по невнимательности напечатает русскую букву вместо латинской.

И, да, в данном коде "Сообщение успешно отправлено" по факту означает "Сообщение передано почтовой программе для отправки". Выше уже писал, что PHP отправкой почты не занимается.
...
Рейтинг: 0 / 0
Отпрака письма
    #39605701
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleStang,

Предложение оформить заголовок Subject в соответствии со стандартами решили отложить до того момента, когда обнаружится, что значительная часть писем падает в спам? ;-)
Впрочем, недостает ещё нескольких полезных заголовков, таких как Content-Type и MIME-Version.
Заголовок "From" часто требует отдельного обдумывания, когда оказывается, что письма не доходят до адресата. В ряде случаев удобнее использовать "Reply-To".

ИМХО абсолютно лишние строчки:автор
Код: php
1.
2.
$email = htmlspecialchars($email);
$email = urldecode($email);

Почтовый адрес не должен содержать таких символов, которые как-то могут попадать под действие оных функций.

Однако, не хватает проверки валидности e-mail и формирования соответствующего сообщения об ошибке. Например, когда пользователь напишет в поле "на деревню бабушке" или, по невнимательности напечатает русскую букву вместо латинской.

И, да, в данном коде "Сообщение успешно отправлено" по факту означает "Сообщение передано почтовой программе для отправки". Выше уже писал, что PHP отправкой почты не занимается.

Про передачу сообщения я уже понял, как раз работаю над этим. А как правильно проверить на валидность, перед отправкой проверить $email? Это вроде:
Код: php
1.
2.
3.
4.
5.
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Адрес указан корректно.";
}else{
echo "Адрес указан не правильно.";
}


И со спамом интересно, боюсь это будет серьезная проблема.
...
Рейтинг: 0 / 0
Отпрака письма
    #39605723
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stang,

Для проверки почтового адреса вполне годный способ.

По теме попадания в спам и отказа от приема письма (ага, и такое бывает) - там много всякого интересного.

Первым делом нужно привести письмо к потребному виду. По минимуму - убрать из заголовков не-латиницу, указать правильно Content-Type, кодировку. В принципе, для образца вполне подойдет письмо, которое отправлено обычной почтовой программой и успешно прошло спам-проверку.

По теме заголовка "From" попадаются закидоны. Например, если во "From" майлрушный адрес и в "To" майлрушный, то письмо может быть отвергнуто вовсе (даже в спам не попало). Как оно сейчас с указанным в Вашем коде гмылом - не в курсе, давно не нарывался на него по этой теме. Может, и нет проблем. Самое верное - указать реально действующий почтовый ящик в своем домене. Плюс настроить запись TXT spf в ДНС.

Не все почтовые серверы готовы принять почту откуда попало (гмыл, например, отказывался). По-хорошему, для сервера отправки нужен белый статичный IP-адрес + PTR-запись в ДНС (это к провайдеру обращаться).

Вот, как-то так примерно.
В этом смысле для надежной работы сервиса в разы проще может оказаться размещение этого трехстраничного сайта на самом бюджетном хостинге. Однако, в таком случае обязательно необходима авторизация, дабы кто попало не шалил.
...
Рейтинг: 0 / 0
Отпрака письма
    #39606098
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хостинг в принципе есть, домен жалко покупать под это дело, он не окупится, так как денег я за работу не получу. А вешать на свой домен, тоже не сильно камильфо, как по мне... В любом случае спасибо, во многое вникаю, полезно.
...
Рейтинг: 0 / 0
Отпрака письма
    #39606384
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stangдомен жалко покупать под это дело, он не окупится, так как денег я за работу не получуИнтересное кино! Проект нужен лично лично Вам, или, всё-же, конторе, у которой
Stangв локальной сети, машин 10-20?


С другой стороны, для решения исходной задачиStang...почту, продажник вбивает ее в поле, и жмет кнопку отправитьвполне подойдет почти любая почтовая программа, где есть поддержка шаблонов писем (а она есть во всех популярных и не очень почтовых программах). На практике, конечно, отправка получится не в один-два клика (как в варианте с веб-формой), а в три. В громоптице, например, это будут такие шаги: 1) клик на "шаблоны"; 2) дабл-клик на шаблоне письма; 3) напечатать email получателя (курсор устанавливается в поле автоматически); 4) клик на "отправить" или Ctrl+Enter.
...
Рейтинг: 0 / 0
Отпрака письма
    #39606492
Zhenek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раньше тоже при отправке отправлял через mail() но постоянно были проблемы с инбоксом, формированием заголовков.
Сейчас пользую mailer

Код: php
1.
2.
3.
4.
5.
6.
$mailer->Subject = 'Тема письма';
$mailer->Body = $htmlbody;
$mailer->IsHTML = true;
$mailer->AddAddress($u->info['email'], 'От кого');
$mailer->AltBody = $textBody;
$mailer->Send();



Быстро, удобно). Там же смтп отправка.
...
Рейтинг: 0 / 0
Отпрака письма
    #39606574
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleStangдомен жалко покупать под это дело, он не окупится, так как денег я за работу не получуИнтересное кино! Проект нужен лично лично Вам, или, всё-же, конторе, у которой
Stangв локальной сети, машин 10-20?


С другой стороны, для решения исходной задачиStang...почту, продажник вбивает ее в поле, и жмет кнопку отправитьвполне подойдет почти любая почтовая программа, где есть поддержка шаблонов писем (а она есть во всех популярных и не очень почтовых программах). На практике, конечно, отправка получится не в один-два клика (как в варианте с веб-формой), а в три. В громоптице, например, это будут такие шаги: 1) клик на "шаблоны"; 2) дабл-клик на шаблоне письма; 3) напечатать email получателя (курсор устанавливается в поле автоматически); 4) клик на "отправить" или Ctrl+Enter.
Скажем так, я даже с продажниками связан косвенно, я в некотором роде проект менеджера. Контора так себе, хоть по количеству людей не очень маленькая. И делаю я это по личной инициативе, заработать себе пару плюсов в карму, при смене работы. Хотя, если доведу до конца, то, в теории, продать продукт я смогу. А тут как раз его обкатаю....
...
Рейтинг: 0 / 0
Отпрака письма
    #39606578
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZhenekРаньше тоже при отправке отправлял через mail() но постоянно были проблемы с инбоксом, формированием заголовков.
Сейчас пользую mailer

Код: php
1.
2.
3.
4.
5.
6.
$mailer->Subject = 'Тема письма';
$mailer->Body = $htmlbody;
$mailer->IsHTML = true;
$mailer->AddAddress($u->info['email'], 'От кого');
$mailer->AltBody = $textBody;
$mailer->Send();



Быстро, удобно). Там же смтп отправка.
А можно подробней, где почитать?
...
Рейтинг: 0 / 0
Отпрака письма
    #39606752
Zhenek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В яндексе или гугле php mailer, там 4 ссылка(у меня) будет Исчерпывающая инструкция по PHP Mailer
Там в принципе все очень подробно
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Отпрака письма
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]