|
|
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
планирую посылать на php на хостинге строку вида: Код: javascript 1. буду благодарен за строки кода, который будет правильно считывать инфу и посылать письмо. т.е. всё, что до решётки,(ну, или ещё какой-нить опознавательный знак) это почта, что после решетки - текст письма. как решить траблу с русскими буквами - тоже хз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 20:21:54 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
А как Вы пробовали решить эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 22:05:44 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
vkleА как Вы пробовали решить эту проблему? я не особо знаком с языком php, знание vb6 помогает... насчёт разделения адреса и содержимого письма - я могу проставить множество условий if (если 4й символ решётка, то с 1 по 3 - адрес, с 5 по последний - текст.) но в идеале тут должен быть цикл. проблему с русскоязычными буквами я решал при помощи перевода букв и символов в их ASCII-код и обратно. но это я делал на vb6. нужны анологичные действия в php. задачи, в принципе, элементарные, нужно только знание синтаксиса, и смогу и решить сам после нескольких часов упорного поиска. но я подумал, что мб кто-нить поможет кодом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 23:21:02 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
BelowZero, все что после хэша не передается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2012, 23:45:55 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
BelowZero, Смотрите переменную $_SERVER["QUERY_STRING"] , там будет все что находится между вопросительным знаком и решеткой. В этом смысле разделитель должен быть отличным от решетки, как подсказал Няша ррр . Далее используйте explode() . Не забудьте добавить проверки на валидность адреса (дабы благодарные пользователи не принялись рассылать спам) и текста. "Траблы с русскими буквами" не будет, если передавать данные стандартным способом, через переменные массива $_GET вот так: Код: sql 1. или так: Код: sql 1. Впрочем, последний вариант (в данном примере использована кириллица в кодировке utf-8) добропорядочный браузер сам сделает из первого, если в ссылке использрвана не-латиница. При такой ссылке получаем в переменных Код: plaintext 1. В Вашем же случае можно использовать urldecode() для декодирования кириллицы. Однако, на мой взгляд, это слишком неудобно когда есть более простой способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 01:24:54 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
Да, а откуда берется эта ссылка? Если она формируется на сервере только для того чтобы пользователь по ней кликнул, то не вижу смысла гонять данные туда-сюда. В таком случае и текст и адрес вполне можно повторно получить на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 01:29:31 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
vkleНе забудьте добавить проверки на валидность адреса не очень понимаю, в чём должна будет заключаться подобная "валидность". существует такая почта, или нет? как? зачем? vkleДа, а откуда берется эта ссылка? ссылка открывается объектом "MSXML2.XMLHTTP" из vb6 проги. т.е. цель - банальная отправка письма vkle, спасибо за объяснение, это именно то, что нужно. сделал - всё работает. только возникли вопросы: к примеру, если в тексте письма будет символ "&" то php начинает его обрабатывать(обрезает по нему текст письма), хотя мне это совсем не нужно. как с этим бороться? убирать или кодировать их на этапе отправки в программе? если да, то было бы неплохо узнать, какие символы придётся убирать\замещать, чтобы строка обрабатывалась в php корректно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 15:44:59 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
BelowZerovkleНе забудьте добавить проверки на валидность адреса не очень понимаю, в чём должна будет заключаться подобная "валидность". существует такая почта, или нет? как? зачем?Нет, цель иная. Добропорядочный пользователь кликнет по ссылке и на том успокоится. Люди ищущие (дыры в коде) пойдут иным путем. После майл-адреса втыкается символ перевода строки, затем пишутся поля Cc и Bcc с солидным списком мыл, потом два перевода строки и следом текст желаемого этим ищущим индивидуумом текста письма. Разумеется, какие-то символы при этом требуется закодировать, однако, примеров в сети навалом. Все это подставляется на то место, где Вы ожидаете получить всего лишь адрес почты. Как результат, этот самый текст будет разослан на кучу перечисленных адресов. Банальная спам-рассылка. На следующий день вы получаете уведомление от хостера об отключении аккаунта за спам. Это один из сценариев, с которыми приходилось так или иначе сталкиваться. Проверка же делается обычно при помощи регулярного выражения. В простейшем случае достаточно убедиться что в строке с адресом почты присутствует всего одна собака, символы a-z (без учета регистра), цифры, точки, тире, подчеркивания. Других символов быть не должно. Если есть чего лишнее - завершаем скрипт с выдачей сообщения об ошибке или просто не отсылаем ничего (это уж по месту решать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 16:31:55 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
BelowZeroесли в тексте письма будет символ "&" то php начинает его обрабатывать(обрезает по нему текст письма), хотя мне это совсем не нужно. как с этим бороться? убирать или кодировать их на этапе отправки в программе? если да, то было бы неплохо узнать, какие символы придётся убирать\замещать, чтобы строка обрабатывалась в php корректноДа, нужно кодировать. Амперсанд является разделителем полей. Плюс - синоним пробела. Процент предваряет коды. Решетка ограничивает передаваемое на сервер справа. Вопросительный знак разделяет имя файла и передаваемые параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 17:00:10 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
vkle, спс за инфу... значит... убираю знаки % # & как не особо важные. но знаки ? + основные как бы... и могут встречаться в письме. что с ними делать? или если оставить ? и + ничего страшного не будет? vkleДругих символов быть не должно можешь написАть все символы, каких быть не должно?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 17:38:13 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
Вопросительный вроде должен проскочить (лень проверять), Но можно заменить вопросительный на код %3f, процент - на %25 и так далее. Таблицу ASCII-кодов найдете, надеюсь ;-) BelowZeroкаких быть не должно?)Все что не используется в адресах, список я ж набросал: vkleприсутствует всего одна собака, символы a-z (без учета регистра), цифры, точки, тире, подчеркивания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 17:54:44 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
яможешь написАть все символы, каких быть не должно?)проверил: вопросительный знак и все символы на моей клаве проходят без помех, кроме + # & vkleВ простейшем случае достаточно убедиться что в строке с адресом почты присутствует всего одна собака, символы a-z (без учета регистра), цифры, точки, тире, подчеркивания. Других символов быть не должно. можешь написать код этой обработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 17:59:39 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
vkle, с обработкой содержимого письма всё норм, главное, вопросительный знак проходит, а без плюса и прочих редко используемых знаков можно обойтись. или, как ты подсказал, буду заменять символы на их аналог в кодировке utf-8 (% тоже не прошли, не заметил сначала). а с почтой не откажусь от помощи) примерно представляю, как должен выглядеть код: в цикле от 1 символа до последнего для каждого идёт условие: если допустимые символы, то дальше, если нет, то "выход". в одну из переменных будет считываться количество "собачек", если больше или меньше 1 - "выход". но тестирование и исправление синтаксиса php убьёт немало времени... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 18:32:06 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
BelowZero, мдя, алгоритмы... Все проще, когда есть preg_match() . Предельно упрощенно как то так примерно будет: Код: php 1. 2. 3. 4. 5. 6. Разумеется, этот регексп делает проверку только в первом приближении. Полная проверка гораздо сложней, да и вряд ли сильно нужна. Подробнее о регекспах , на случай если чего поправить захотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 20:03:41 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
проверил - то, что нужно. vkle, ещё раз большое спс) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 20:24:39 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
BelowZero, http://php.net/manual/ru/function.filter-var.php Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 20:26:46 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
Няша ррр, угук, тоже вариант) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 20:38:48 |
|
||
|
отправка письма через php
|
|||
|---|---|---|---|
|
#18+
Няша ррр, Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2012, 06:17:47 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37790078&tid=1465174]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
192ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 516ms |

| 0 / 0 |
