powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / отправка письма через php
19 сообщений из 19, страница 1 из 1
отправка письма через php
    #37788432
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
планирую посылать на php на хостинге строку вида:
Код: javascript
1.
http://мой хост/1.php?123456@mail.ru#ёлки иголки

буду благодарен за строки кода, который будет правильно считывать инфу и посылать письмо. т.е. всё, что до решётки,(ну, или ещё какой-нить опознавательный знак) это почта, что после решетки - текст письма. как решить траблу с русскими буквами - тоже хз
...
Рейтинг: 0 / 0
отправка письма через php
    #37788527
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как Вы пробовали решить эту проблему?
...
Рейтинг: 0 / 0
отправка письма через php
    #37788568
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleА как Вы пробовали решить эту проблему? я не особо знаком с языком php, знание vb6 помогает... насчёт разделения адреса и содержимого письма - я могу проставить множество условий if (если 4й символ решётка, то с 1 по 3 - адрес, с 5 по последний - текст.) но в идеале тут должен быть цикл. проблему с русскоязычными буквами я решал при помощи перевода букв и символов в их ASCII-код и обратно. но это я делал на vb6. нужны анологичные действия в php. задачи, в принципе, элементарные, нужно только знание синтаксиса, и смогу и решить сам после нескольких часов упорного поиска. но я подумал, что мб кто-нить поможет кодом
...
Рейтинг: 0 / 0
отправка письма через php
    #37788584
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelowZero, все что после хэша не передается
...
Рейтинг: 0 / 0
отправка письма через php
    #37788651
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero,

Смотрите переменную $_SERVER["QUERY_STRING"] , там будет все что находится между вопросительным знаком и решеткой. В этом смысле разделитель должен быть отличным от решетки, как подсказал Няша ррр . Далее используйте explode() . Не забудьте добавить проверки на валидность адреса (дабы благодарные пользователи не принялись рассылать спам) и текста.

"Траблы с русскими буквами" не будет, если передавать данные стандартным способом, через переменные массива $_GET вот так:
Код: sql
1.
http://test.local/phpinfo.php?email=123456@mail.ru&;text=ёлки иголки

или так:
Код: sql
1.
http://test.local/phpinfo.php?email=123456@mail.ru&;text=%D1%91%D0%BB%D0%BA%D0%B8%20%D0%B8%D0%B3%D0%BE%D0%BB%D0%BA%D0%B8

Впрочем, последний вариант (в данном примере использована кириллица в кодировке utf-8) добропорядочный браузер сам сделает из первого, если в ссылке использрвана не-латиница.
При такой ссылке получаем в переменных
Код: plaintext
1.
$_GET["email"]	123456@mail.ru
$_GET["text"]	ёлки иголки
Вместо $_GET можно смотреть массив $_REQUEST - там будет то же самое.

В Вашем же случае можно использовать urldecode() для декодирования кириллицы. Однако, на мой взгляд, это слишком неудобно когда есть более простой способ.
...
Рейтинг: 0 / 0
отправка письма через php
    #37788655
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, а откуда берется эта ссылка? Если она формируется на сервере только для того чтобы пользователь по ней кликнул, то не вижу смысла гонять данные туда-сюда. В таком случае и текст и адрес вполне можно повторно получить на сервере.
...
Рейтинг: 0 / 0
отправка письма через php
    #37789619
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleНе забудьте добавить проверки на валидность адреса не очень понимаю, в чём должна будет заключаться подобная "валидность". существует такая почта, или нет? как? зачем? vkleДа, а откуда берется эта ссылка? ссылка открывается объектом "MSXML2.XMLHTTP" из vb6 проги. т.е. цель - банальная отправка письма
vkle, спасибо за объяснение, это именно то, что нужно. сделал - всё работает. только возникли вопросы: к примеру, если в тексте письма будет символ "&" то php начинает его обрабатывать(обрезает по нему текст письма), хотя мне это совсем не нужно. как с этим бороться? убирать или кодировать их на этапе отправки в программе? если да, то было бы неплохо узнать, какие символы придётся убирать\замещать, чтобы строка обрабатывалась в php корректно
...
Рейтинг: 0 / 0
отправка письма через php
    #37789717
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZerovkleНе забудьте добавить проверки на валидность адреса не очень понимаю, в чём должна будет заключаться подобная "валидность". существует такая почта, или нет? как? зачем?Нет, цель иная. Добропорядочный пользователь кликнет по ссылке и на том успокоится. Люди ищущие (дыры в коде) пойдут иным путем. После майл-адреса втыкается символ перевода строки, затем пишутся поля Cc и Bcc с солидным списком мыл, потом два перевода строки и следом текст желаемого этим ищущим индивидуумом текста письма. Разумеется, какие-то символы при этом требуется закодировать, однако, примеров в сети навалом. Все это подставляется на то место, где Вы ожидаете получить всего лишь адрес почты. Как результат, этот самый текст будет разослан на кучу перечисленных адресов. Банальная спам-рассылка. На следующий день вы получаете уведомление от хостера об отключении аккаунта за спам. Это один из сценариев, с которыми приходилось так или иначе сталкиваться.

Проверка же делается обычно при помощи регулярного выражения. В простейшем случае достаточно убедиться что в строке с адресом почты присутствует всего одна собака, символы a-z (без учета регистра), цифры, точки, тире, подчеркивания. Других символов быть не должно. Если есть чего лишнее - завершаем скрипт с выдачей сообщения об ошибке или просто не отсылаем ничего (это уж по месту решать).
...
Рейтинг: 0 / 0
отправка письма через php
    #37789776
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZeroесли в тексте письма будет символ "&" то php начинает его обрабатывать(обрезает по нему текст письма), хотя мне это совсем не нужно. как с этим бороться? убирать или кодировать их на этапе отправки в программе? если да, то было бы неплохо узнать, какие символы придётся убирать\замещать, чтобы строка обрабатывалась в php корректноДа, нужно кодировать. Амперсанд является разделителем полей. Плюс - синоним пробела. Процент предваряет коды. Решетка ограничивает передаваемое на сервер справа. Вопросительный знак разделяет имя файла и передаваемые параметры.
...
Рейтинг: 0 / 0
отправка письма через php
    #37789849
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

спс за инфу... значит... убираю знаки % # & как не особо важные. но знаки ? + основные как бы... и могут встречаться в письме. что с ними делать? или если оставить ? и + ничего страшного не будет? vkleДругих символов быть не должно можешь написАть все символы, каких быть не должно?)
...
Рейтинг: 0 / 0
отправка письма через php
    #37789879
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопросительный вроде должен проскочить (лень проверять), Но можно заменить вопросительный на код %3f, процент - на %25 и так далее. Таблицу ASCII-кодов найдете, надеюсь ;-)


BelowZeroкаких быть не должно?)Все что не используется в адресах, список я ж набросал:
vkleприсутствует всего одна собака, символы a-z (без учета регистра), цифры, точки, тире, подчеркивания
...
Рейтинг: 0 / 0
отправка письма через php
    #37789889
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
яможешь написАть все символы, каких быть не должно?)проверил: вопросительный знак и все символы на моей клаве проходят без помех, кроме + # & vkleВ простейшем случае достаточно убедиться что в строке с адресом почты присутствует всего одна собака, символы a-z (без учета регистра), цифры, точки, тире, подчеркивания. Других символов быть не должно. можешь написать код этой обработки?
...
Рейтинг: 0 / 0
отправка письма через php
    #37789944
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle, с обработкой содержимого письма всё норм, главное, вопросительный знак проходит, а без плюса и прочих редко используемых знаков можно обойтись. или, как ты подсказал, буду заменять символы на их аналог в кодировке utf-8 (% тоже не прошли, не заметил сначала). а с почтой не откажусь от помощи) примерно представляю, как должен выглядеть код: в цикле от 1 символа до последнего для каждого идёт условие: если допустимые символы, то дальше, если нет, то "выход". в одну из переменных будет считываться количество "собачек", если больше или меньше 1 - "выход". но тестирование и исправление синтаксиса php убьёт немало времени...
...
Рейтинг: 0 / 0
отправка письма через php
    #37790050
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelowZero, мдя, алгоритмы... Все проще, когда есть preg_match() .

Предельно упрощенно как то так примерно будет:
Код: php
1.
2.
3.
4.
5.
6.
if(preg_match('/^[a-z\d_\-.]+@([a-z\d\-]+\.)+[a-z]{2,4}$/i', $email_address)) {
// ok
}
else {
// лажа
}

Разумеется, этот регексп делает проверку только в первом приближении. Полная проверка гораздо сложней, да и вряд ли сильно нужна. Подробнее о регекспах , на случай если чего поправить захотите.
...
Рейтинг: 0 / 0
отправка письма через php
    #37790075
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверил - то, что нужно. vkle, ещё раз большое спс)
...
Рейтинг: 0 / 0
отправка письма через php
    #37790078
Няша ррр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelowZero,

http://php.net/manual/ru/function.filter-var.php

Код: php
1.
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
...
Рейтинг: 0 / 0
отправка письма через php
    #37790088
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша ррр,

угук, тоже вариант)
...
Рейтинг: 0 / 0
отправка письма через php
    #37790330
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няша ррр,

Код: php
1.
var_dump(filter_var("имя@почта.рф", FILTER_VALIDATE_EMAIL));
...
Рейтинг: 0 / 0
отправка письма через php
    #37790356
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
BelowZero ссылка открывается объектом "MSXML2.XMLHTTP" из vb6 проги. т.е. цель - банальная отправка письма
Это какая-то ректальная тонзиллэктомия.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / отправка письма через php
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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