2012-03-03 2 views
1

У меня есть веб-страница с текстовым полем, где пользователь может ввести свой идентификатор электронной почты. Я хочу отправить письмо по электронной почте.Как отправить почту с помощью javascript

<form action="mailto:[email protected]" method="post" enctype="text/plain" > 

FirstName:<input type="text" name="FirstName"> 

Email:<input type="text" name="Email"> 

<input type="submit" name="submit" value="Submit"> 

</form> 

Проблема заключается в том, я хочу mailto:[email protected] быть взяты из текста box.Then сообщение должно появиться о том, что сообщение было успешно отправлено. Могу ли я сделать это с помощью javascript?

+2

добавить идентификатор к входу электронной почты, скажем, ' ID = "почта" '. затем 'document.getElementById (« mail »). value'. – onemach

+0

Итак, вы хотите, чтобы пользователь отправил электронное письмо самому себе? – xdazz

+0

Вы не можете отправлять почту прямо со стороны клиента. Вы можете настроить свою форму, чтобы вести себя как ссылка «mailto», но нет способа подтвердить, было ли отправлено сообщение, инициированное 'mailto'. – rjz

ответ

3

JavaScript-браузер не может отправлять электронную почту самостоятельно. Лучшее, что он может сделать, это попытаться открыть для них почтовую программу пользователя, чтобы они могли отправить электронное письмо. Например:

location.href = 'mailto:' + encodeURIComponent(emailAddress) + 
       '?subject=' + encodeURIComponent(subject) + 
       '&body=' + encodeURIComponent(body); 

Вы можете подключить submit события формы, предотвратить действие по умолчанию, и выполнить этот код, и конечный результат будет они могут заполнить форму, нажмите на кнопку отправить, открывает их почтовый клиент , и они могут нажать отправить.

Try it на JSFiddle.

0

Прежде всего, электронные письма не могут быть отправлены с использованием javascript. Это только язык сценариев на стороне клиента, и он не может отправить электронное письмо без предварительного обращения к серверу и «попросить» его отправить электронное письмо с помощью PHP или какого-либо другого серверного языка.

Я не уверен, что вы имеете в виду, говоря, что хотите, чтобы mailto:[email protected] был взят из текстового поля. mailto: - это всего лишь протокол, который заставляет браузер открывать почтовую программу пользователя по умолчанию для отправки почты на указанный адрес. Вы можете легко создать ссылку mailto:, которую пользователь может щелкнуть, чтобы сделать это, или вытащить адрес электронной почты из существующей ссылки mailto:, но письмо по-прежнему нужно отправить другим способом.

Есть много сложных способов сказать пользователю сообщение было отправлено успешно, но самый простой и прямой, вероятно, просто окно предупреждения:

alert("Your email has been sent succesfully.");