2012-03-03 5 views
1

사용자가 이메일 주소를 입력 할 수있는 텍스트 상자가있는 웹 페이지가 있습니다. Id 입력 메일에 메일을 보내려고합니다.자바 스크립트를 사용하여 메일을 보내는 방법

<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에서주의 할 것입니다. 자바 스크립트를 사용하여 할 수 있습니까?

+2

이메일 입력에 ID를 추가 말할' id = "mail"'. 그런 다음'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

우선 이메일은 자바 스크립트를 사용하여 전송할 수 없습니다. 이것은 클라이언트 측 스크립팅 언어 일 뿐이며, 서버에 접속하지 않고 전자 메일을 보내고 PHP 나 다른 서버 측 언어를 사용하여 전자 메일을 보내도록 요청합니다.

mailto:[email protected]을 텍스트 상자에서 가져오고 싶다는 뜻이 확실하지 않습니다. mailto:은 브라우저가 사용자의 기본 전자 메일 프로그램을 열어 주어진 주소로 메일을 보내는 프로토콜입니다. 사용자가 클릭하거나 기존 mailto : 링크에서 이메일 주소를 가져올 수있는 mailto : 링크를 쉽게 만들 수 있지만 이메일은 여전히 ​​다른 방법으로 전송되어야합니다.

이 메시지가 성공적으로 전송 된 사용자 말할 정교한 많은 방법이 있지만, 가장 쉽고 아마 간단한 경고 상자입니다 :

alert("Your email has been sent succesfully."); 
관련 문제