Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.48.135] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
вот в чём проблема: все, кто сталкивался с отправкой данных из формы по e-mail сталкивались, наверное, с тем, что The Bat! с явной неохотой отправляет подобные сообщения, точнее говоря, вообще их не отправляет. На этот случай всплывает в памяти технология ActiveX, но как реализовать вставку определенного текста в код письма не знаю. Может кто подскажет, как обойтись без наворотов в межпрограммном взаимодействии, а если подобного простого пути нет, то может кто-нибудь кинет простенький примерчик с ActiveX на JavaScript
|
Сообщ.
#2
,
|
|
|
Все гораздо проще:
<a href="mailto:address@domain.com?subject=Тема письма&body=Содержимое сообщения">Текст ссылки</a> Это, конечно, если ты используешь mailto, а не серверный скрипт (тогда тебе в серверную часть). |
Сообщ.
#3
,
|
|
|
не всё так гладко - пишу следующую процу:
function SendOrderNow(th){ var strMail='mailto:name@domen.ru?subject=The_order&body='; var tab=document.getElementById("PostTab"); for (var i=1; i<tab.rows.length; i++) { var perO='SendZak.ta_'+i+'.value'; if (tab.rows[0].cells[2].innerText=='Кол-во') { strMail+=tab.rows[i].cells[1].innerText+' кол-во='+tab.rows[i].cells[2].innerText+' Описание='+eval(perO)+' /n'; } else { strMail+=tab.rows[i].cells[1].innerText+' Описание='+eval(perO)+' /n'; } } th.href=strMail; } так отправляется всякая хренотень: в таблице ведь по-русски написаны слова - он их в href загонять не хочет. Что делать в таком случае? P.S.: SendZak - форма ta_xxx - элемент формы типа textarea th - указатель this на ссылку, которой и присваиваем href |
Сообщ.
#4
,
|
|
|
Во-первых, надо указать кодировку (точно так же - &charset=windows-1251).
Во-вторых, нужна функция типа urlencode() (она есть в PHP, но не знаю, есть ли в JS). Могу ее написать, если в JS ее нет. |
Сообщ.
#5
,
|
|
|
Параметры значение параметров Subject, Body надо брать в кавычки. Твой код мне поднять не удалось, а свой написал - работает.
[html] <script> function mail(th) { var body = 'Привет! Это пробное письмо'; var subject = 'Привет, Roman!'; var to = 'some@wh.ere'; th.href = 'mailto:' + to + '?Subject="' + subject + '"&Body="' + body + '"'; } </script> <a href="#" onclick="mail(this);">Mail Me</a> [/html] У меня тока The Bat. Под другими не тестил;) |
Сообщ.
#6
,
|
|
|
Malicious Babai, вариант Rom@nych'а работает? Если да, то я могу спать спокойно.
Попробовал написать urlencode: function CharToHex(c) { var HEX_TABLE = "0123456789ABCDEF"; var got = c.charCodeAt(0); var left = 0; var result = ""; var result2 = ""; left = got % 16; result += HEX_TABLE.charAt(left); got = Math.floor(got/16); result += HEX_TABLE.charAt(got); for(var cnt = result.length; cnt >= 0; cnt--) result2 += result.charAt(cnt); return result2; } function str_urlencode(str) { var LAT_TABLE = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var result = ""; var c = ""; for(var i = 0; i < str.length; i++) { c = str.charAt(i); if((LAT_TABLE.indexOf(c) == -1) && (c != '_') && (c != ' ')) { result += '%' + CharToHex(c); } else { if(c == ' ') result += '+'; else result += c; } } return result; } С обычными кодировками работает. Но с unicode символами - жестокий облом. |
Сообщ.
#7
,
|
|
|
Понимаешь, в чём бяка. Я тоже хотел написать так, но когда я пишу строку
[html] <a href="mailto:some@wh.ere?Subject=Hello%20user&Body=Some%20text">Mail!</a> [/html] оно тоже не работает. Поэтому - кавычки рулят%) |
Сообщ.
#8
,
|
|
|
Закрываем тему.
|
Сообщ.
#9
,
|
|
|
Rom@nych, у меня при отправке слова Прювет (заключенного в кавычках) в теле письма помещается вот такая запись: " 2CF0F0FFE0E2EE52F2 ". Думаю согласишься, что выглядит довольно-таки нечитабельно (хотя без кавычек и этого нет). Тоже самое происходит при отправке всей таблицы (разница только в результирующем выражении)
Trustmaster, я с PHP знаком весьма слабо, но судя по твоему коду я так понял, что urlencode() преобразует кириллицу (и другие нелатинские литеры) к 16-тиричному формату. Я вставляю твою функцию в код и получается такая строка: str=str_urlencode(strBody)+'charset=windows-1251'; th.href=strMail+str; функция как доходит до этого фрагмента, так вообще перестает выполняться. Может я не правильно что-то понял или сделал - поправь меня, пожалуйста. В JS есть функция преобразования строки к ASCII-кодированной строке escape(), но она тож не ах-ти как помогает. К примеру, тот же "Прювет" выводит в теле письма вот таким образом: " 2u041F0u04400u044E0u04320u04350u0442 " В общем, ерундистика какая-то получается P.S.: уж извиняйте, что раз в день на форуме бываю и не отвечаю сразу - рабочий график не позволяет |
Сообщ.
#10
,
|
|
|
Я функцию на JS написал! Попробуй так:
th.href='mailto:address@domain.com?subject=Subject&charset=windows-1251&body=' + str_urlencode(strBody); Только эта функция с unicode символами работать не будет (а набирается, скорее всего, юникод) - вот в чем проблема. Можно еще использовать html-макросы (&1024; например) и content-type=text/html. Тебе так пойдет? |
Сообщ.
#11
,
|
|
|
Malicious Babai, выложи всю страницу (если там нет супер секюрной инфы;)) и мы попробуем в ней разобраться:) А не под The bat'ом пробовал? Мой код работает (в таком виде как я написал). Можно ещё и систему для прикола указать;))
|
Сообщ.
#12
,
|
|
|
Trustmaster, да я понял, что проца на JS написана - я про то говорил, что не знал до этого момента назначения данной функциии (а она ведь из PHP, в принципе, взята).
Цитата Можно еще использовать html-макросы (&1024; например) а можно поподробнее с этого момента, а то у меня понятие об html-макросах весьма туманное. Цитата и content-type=text/html. т.е. в мета-тэгах прописать? так это всё и так прописано и кодировка выставлена win-1251, так что Юникод здесь не виноват. Что-то здесь другое, при чём самое интересное, что из IE6 SP1 отправка сообщения по предложенному тобой методу осужществляется примерно в таком виде: @@15-17,5 1 а /n ( 1,5-10; Ш250-1500 Ђ 1 а /n (это две строки из таблицы), а Opera 7.10 вообще отказывается глотать эти скрипты и блокирует выполнение всех действий на странице ( при этом не выполняются ряд процедур не причастные к отправке сообщений) |
Сообщ.
#13
,
|
|
|
Rom@nych, по твоей просьбе выкладываю... тока учтите, что сначала пускается файл ааа2.htm , а потом уже в файле заказа происходит отправка по мылу (т.е. между формами данные передаются между всем этим)... странички тестовые, так что графику к ним не прилагаю и замечания по поводу дизайна просьба не высказывать как тока скрипты все напишу и дизайн проработаю обязательно выложу линк для оценки в соответствующем разделе
Прикреплённый файл2.zip (7.49 Кбайт, скачиваний: 124) |
Сообщ.
#14
,
|
|
|
Функция urlencode взята из протокола HTTP, она применяется для отправки данных скриптам. Данный код я перевел со своей же функции на C#.
Что до html-макросов, то это тот же Гораздо лучше написать online форму и генерировать/отсылать письмо прямо из скрипта. Как насчет PHP/Perl? |
Сообщ.
#15
,
|
|
|
Trustmaster, начальство жадным бывает - потому на free-хостинге сижу пока что. Приходиться выпутываться посредством JS (если страницы смотрел, то заметил, что там и передача данных от одной формы к другой, и отправка по почте... в данный момент еще и над алгоритмом поиска в каталоге думаю... Всё это, без сомнения, проще и разумнее реализовать на PHP, но пока что сами всё видите...
|