eMail через JS
Возможно ли послать мыло через JS. Некоторые говорят что можно, другие говорят что мыло надо отправлять через сервер(php) а не через клиента(JS). Кому верить??
|
так, слушай сюда.
дядя тебе плохого не посоветует, и неправды не скажет) послать e-mail с помощью JS-а нельзя. на стороне клиента все что етсь по поводу E-mail-ов, это псевдо-атрибут mailto: в ссылках и формах в лучшем случае, он откроет пользователю клиент почты, и предложит отправить мыло. в случае формы, там даже будет уже заполнено поле тела сообщения(которое пользователь спокойно может отредактировать) При этом в большинстве случаев открывается ненастроенный Outlook, и пользователь не станет заморачиватся настравивая его, чтобы отправить письмо в худшем случае, пользователю предложат установить клиент почты, и дальше все как я только что описал. Короче говоря кросбраузерно и в автоматически отправить мыло с клиента нельзя. Если кто скажет, что можно, требуй конкретный рабочий код =) все будет, как описано. Если предложат купить скрипт, работай исключитаельной через гаранта потому что это заранее развод. А вот послать запрос PHP-сркипту, который уже отправит автоматичски мыло, можно вот и сказочке конец, а кто слушал отправьте СМС на короткий номер |
Цитата:
|
Благодарю за разьяснение ...
В Joomla с php что-то не хочет отправлять думал может с JS получится ... Народ дайте ссылочку на литературу по сбору данных Js и перемищением собранного в php. Надеюсь таковой имеется. Спасибо. |
Kolyaj,
твой скрипт может из браузера, исопльзуя JS отправлять E-mail достаточно прозрачно для пользователя(читай "незаметно"), и при этом работает в осле-опере-гнелисе актуальных тверсий? можно поинтересоватся ценой? |
Цитата:
Там же ж смайлики ))) |
Ну собрал я данные с формуляра, а что дальше то делать???
<script type="text/javascript">
function sobiraem(){
var name = document.forms[0].Name.value;
var email = document.forms[0].eMail.value;
var betreff = document.forms[0].Betreff.value;
var nachricht = document.forms[0].Nachricht.value;
}
</script>
|
Kolyaj,
прости, не оценил юмора с первого раза) konstantinopol, что дальше, для чего? конкретику! как дальше действовать, если ты хочеш отправлять e-mail с сервера средствами PHP? или как дальше действовать, если ты все-таки хочеш отправить чисто клиентскими средствами, несмотря на мой пост? если второе, то не надо собирать данные отдельно.достаточно прописать в action-е формы mailto:my_mail.gmail.com если надо первое, то посылаеш любым удобным способом(AJAX,переход по ссылке,форма) данные для пересылки на серверный сркипт. а вот в нем уже отправляеш мыло стандартной функцией mail() Если тебе этого ответа недостаточно, уточни свой вопрос |
ну как-бы да. аяксом отсылаешь данные на сервер, а там чем угодно (php/cgi/...) их обрабатываешь и отсылаешь письмо.
|
Здравствуйте, в продолжении темы хотел бы узнать как сформировать запрос из js в ajax, чтобы отправить данные на сервер, а потом при помощи php на электронную почту?
У меня в инпутах заполняются данные, форму взял с известного сайта, http://ruseller.com/lessons/les634/demo/index.html Скажите, как можно оформить всё это в одно сообщение и отослать по электронке? Заранее спасибо за ответ! |
Цитата:
|
я в таких ситуауиях шлю ajax запрос на php страничку, которая шлет то что нужно
|
Цитата:
Мне просто нужно JS считать все данные вида О компании => company_name Контактное лицо => username Контактный телефон => tel_number Контактный email => email В виде массива
$("input").blur(function () {
var $(this).value = $(this).value ;
});
Я думаю как-то отсюда надо "плясать", только не знаю как, возможно создать 2 массива (1 для имен, 2 для значений) =( Потом сгенерировать письмо, где присвоить им свои имена Заранее спасибо за помощь! |
Тема еще актуальна?
как-то так: PHP:
<?php
$to = "$_GET[mail]";
// Адрес, куда придет письмо
$subject = "$_GET[subject]";
// Заголовок сообщения
$company_name = "$_GET[company]";
// Имя компании
$tel = "$_GET[tel]";
// Телефон
$username = "$_GET[username]";
// Контактное лицо
$email = "$_GET[email]";
// Почта контактного лица
$message = "О компании: $company_name \n Контактное лицо: $username \n Контактный телефон: $tel \n E-Mail: $email";
// Целостное сообщение
mail($to, $subject, $message);
// Шлем сообщение
?>
JS:
function httpGet(theUrl) {
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send( null );
}
function sendMail(to, subject, company_name, tel_number, username, email) {
var lnk = 'http://yourhost.ru/mail.php?mail='
+ encodeURIComponent(to)
+ '&subject='
+ encodeURIComponent(subject)
+ '&company='
+ encodeURIComponent(company_name)
+ '&tel='
+ encodeURIComponent(tel_number)
+ '&username='
+ encodeURIComponent(username)
+ '&email='
+ encodeURIComponent(email);
httpGet(lnk)
}
пример отправки: sendMail('vampir3@gmail.com', 'Куплю комбайн', 'Дуров и КО', '112112112', 'Vampir3', 'vampir3@gmail.ru'); |
Не получается, запрос слишком огромный, нужно делать через метод post
|
PHP:
<?php $to = "scarabey_82@mail.ru"; // Адрес, куда придет письмо $subject = "Сообщение"; // Заголовок сообщения $message = "Сообщение"; // Целостное сообщение mail($to, $subject, $message); // Шлем сообщение ?> JS: function httpGet(theUrl) { var xmlHttp = null; xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", theUrl, false ); xmlHttp.send( null ); } function sendMail(to, subject) { var lnk = 'http://mail.ru/mail.php?mail=' + encodeURIComponent(to) + '&subject=' + encodeURIComponent(subject) httpGet(lnk) } не отправляет ( что я делаю не так ? |
| Часовой пояс GMT +3, время: 00:35. |