2012-08-06 1 views
1

우선, 나는 asp.net, jquery 및 모든 웹 사이드 항목을 완전히 처음 보았습니다. 나는 그것에 대해 잘 이해하지 못한다. 나는 약간의 연구를 시도했지만, 내 문제를 알아낼 수 없다.ASP.net으로 전자 메일을 보내려고하면 ashx 파일에 변수를 전달할 수 없습니다.

템플릿을 구입했는데 이제이 깨진 코드를 통해 기능을 보려고합니다.

나는 문의 양식을 가지고 필드는 다음과 같다 : 하나는 텍스트 영역이다 제외

<label class="name"> 
    <input type="text" value="Name:"> 
    <span class="error">*This is not a valid name.</span> 
     <span class="empty">*This field is required.</span> 
    <span class="clear"></span> 
</label> 

는 모두 동일 3 개 또는 4 필드가 있습니다.

이제 내 문제는 텍스트 필드에서 값을 가져 오지 못한다고 생각합니다. 어느 쪽이든 아니면 정확하게 값을 전송하지 않습니다.

이 내 제출 기능입니다 :

submitFu: function() { 
    _.validateFu(_.labels) 
    if (!_.form.has('.' + _.invalidCl).length) 
     $.ajax({ 
       type: "POST", 
       url: _.mailHandlerURL, 
       dataType: 'json', 
       data: { 
        'name': +_.getValFromLabel($('.name', _.form)), 
        'email': +_.getValFromLabel($('.email', _.form)), 
        'phone': _.getValFromLabel($('.phone', _.form)), 
        'message': +_.getValFromLabel($('.message', _.form)), 
        'from': '[email protected]', 
        'smtpMailServer': + _.smtpMailServer, 
        'stripHTML': 'false' 
        }, 
       success: function() { _.showFu() }, 
       error: function (data) { alert(data.responseText); } 
}) 

그리고 이것은 정말 이해가 안 내 "getValFromLabel"기능입니다 :

getValFromLabel: function (label) { 
     var val = $('input,textarea', label).val() 
     , defVal = label.data('defVal') 
     return label.length ? val == defVal ? 'nope' : val : 'nope' 
} 

을 내 제출 기능과 그 위에 alert(+_.getValFromLabel($('.message', _.form)))를 넣어 "NaN"을 보여 주며 전혀 의미가 없습니다. 그게 내가 왜 값을 올바르게 얻지 못하는 것 같아. 문의 양식은 보낸 사람 주소가없는 오류를 반환합니다.

어떤 아이디어 ???

+1

ASP .NET을 사용하고 있으므로 PHP 대신 C# 또는 VB .NET을 사용하여 전자 메일을 보낼 수 있습니다. –

+0

내 메일 처리기 파일에서 C# 사용. 나는 thats 문제를 믿지 않는다. 매개 변수는 그다지 멀리 떨어지지 않습니다. 텍스트 필드에서 데이터를 올바르게 가져올 지 여부를 알아야합니다. – CSharpDev

+0

아니면 C#을 사용할 때 POST를하지 않겠습니까? ?? 메일 처리기 파일을 어떻게 호출합니까? – CSharpDev

답변

2

여기 여기 http://bassistance.de/jquery-plugins/jquery-plugin-validation/

<form method="post" class="cmxform" id="form" action="form.php"> 
    <fieldset> 
     <legend>Login Form (Enter "foobar" as password)</legend> 
     <p> 
      <label for="user">Name</label> 
      <input id="name" name="name" title="Please enter your name (at least 3 characters)" class="required" minlength="3" /> 
     </p> 
     <p> 
      <label for="email">Email</label> 
      <input id="email" name="email" title="Please enter a valid email address" class="required email"/> 
     </p> 
     <p> 
      <label for="phone">Phone</label> 
      <input id="phone" name="phone" title="Please enter a valid phone number" class="required digits" minlength="10" maxlength="15" /> 
     </p> 
     <p> 
      <label for="phone">comment</label> 
      <textarea id="comment" name="comment" title="Please enter a comment" class="required" rows="10" cols="50" ></textarea> 
     </p> 
     <p> 
      <input class="submit" type="submit" value="Submit"/> 
     </p> 
    </fieldset> 
</form> 

를 사용하여 기본 코드는 이미 코드/샘플 위에 게시 한 이후 ASHX 코드에 URL을 가리켜 야합니다

jQuery("#form").validate({ 
    submitHandler: function() { 
     $.ajax({ 
      type: "POST", 
      url: "EMAIL.ashx",//or you can code behind web method/webservice 
      dataType: 'json', 
      data: { 
       'name': + $("#name").val(), 
       'email': + $("#email").val(), 
       'phone': $("#phone").val(), 
       'message': + $("#comment").val(), 
       'from': '[email protected]', 
       'smtpMailServer': + $("#smtpserver").val(), 
       'stripHTML': 'false' 
       }, 
      success: function() { alert("email sent successfully") }, 
      error: function (data) { alert(data.responseText); } 
     })    
    } 
}); 

자바 스크립트/jQuery 코드입니다 나는 그것을 포함하지 않는다, 또한 smtp 세부 사항을 통과하는 것은 추천되지 않는다, 당신은 웹에서 csharp 코드의 세부 사항을 얻는다.config

1

웹 언어에 익숙하지 않은 경우 ASP .NET 컨트롤과 C#을 사용하여 전자 메일을 보내보십시오. 즉, 하나의 텍스트 상자는 "이름"값을 수용하기 위해 단지를 위해, 그리고 버튼이 이메일을 보내, 분명히

<asp:TextBox ID="Name" runat="server"></asp:TextBox> 
<asp:Button ID="SendButton" runat="server" Text="Send" /> 

:

마크 업이 같이 보일 것입니다. 필요에 따라 여러 개의 텍스트 상자를 추가하십시오. 당신은 C# 파일의 맨 위에 다음 참조를 넣어 있는지 확인

string MailBody; 
MailMessage myMessage = new MailMessage(); 
SmtpClient smtpC = new SmtpClient(); 

myMessage.Subject = "Subject for Email"; 
myMessage.From = new MailAddress("[email protected]", "Your Name"); 
myMessage.To.Add(new MailAddress("[email protected]", "Receiver Name"); 

mailBody = Name.Text; //Get information from webpage 

smtpC.send(myMessage); //Send the email via smtp 

을 :

는 다음, SendButton_Click 이벤트, 다음과 같은 코드를 사용 또한

using System.IO; 
using System.Net.Mail; 

는 사용하기 SMTP 클라이언트를 사용하는 경우 web.config 파일에 다음과 같이 몇 가지 구성을 추가해야합니다.

<system.net> 
    <mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
     <network enableSsl="true" userName="[email protected]" password="yourpassword" host="smtp.gmail.com"/> 
    </smtp> 
</mailSettings> 
관련 문제