2012-12-03 3 views
0

내 웹 사이트에 "contuct us"페이지가 있으며 관리자에게 전자 메일 을 통해 고객이 회신 할 수있게하고 싶습니다. 모든 프로세스가 서버 측에 있어야합니다. 내가 Webmatrix 개발 환경에서 작동하는 것이 중요합니다 은 ... asp.net에서 가장 간단한 방법으로 웹 페이지에서 전자 메일을 보내려면?

그래서 내 웹 개발 전송 이메일 기능을 추가하는 나를 위해 간단한 방법이 무엇인가를 생각?

내 HTML 코드는 다음과 같습니다

foreach(var row in db.Query(displayApplicant,nameOfcustomer)) 
       { 
       <tr> 
        <td class="dispExpertActScreen">@row.messegeID</td> 
        <td class="dispExpertActScreen">@row.name</td> 
        <td class="dispExpertActScreen">@row.email</td> 
        <td class="dispExpertActScreen">@row.isCustomer</td> 
        <td class="dispExpertActScreen">@row.userID</td> 
        <td class="dispExpertActScreen">@row.content</td> 
        <td class="dispExpertActScreen"><a href="#" onclick="answerBox('@row.messegeID','@row.userID')" style="color: #b04e4e">answer the question</a></td> 
        <td class="dispExpertActScreen"><a href="#" onclick="reqeustToDelete('@row.messegeID')" style="color: #b04e4e">remove</a></td> 
       </tr> 
       } 

자바 스크립트 기능 :

<form method="post" id="ansMessege" style="font-size: medium; margin-top: 10%" dir="rtl"> 
    <input type="hidden" name="answer" id="answer" value=""> 
    <input type="hidden" name="msgID" id="msgID" value=""> 
    <input type="hidden" name="user" id="user" value=""> 
    <input type="hidden" name="ansMode" id="ansMode" value=""> 
</form> 

asp.net :

<script type="text/javascript"> 

function answerBox(messegeID,userID) { 
     var msg = prompt('answer to customer:'); 
     document.getElementById('answer').value = msg; 
     document.getElementById('ansMode').value = 'true'; 
     document.getElementById('msgID').value = messegeID; 
     document.getElementById('user').value = userID; 
     document.getElementById('ansMessege').submit(); 
    } 

</script> 

숨겨진 필드 (숨겨진 필드의 세부 정보를 저장하기 위해) 코드 :

<%@ Import Namespace="System.Web.Mail" %> 

@{ 
    Layout = "~/_ManagerLayout.cshtml"; 
    Page.Title = "Management Applications"; 

} 
@{ 
    var db = Database.Open("MyProjectSite"); 
    var display="no"; 
    var displayApplicant=""; 
    var nameOfcustomer=""; 
    var category=""; 
    var yesNo=""; 
    if(IsPost) 
    { 
    if(Request.Form["ansMode"] == "true") 
      { 
       var selectQuery="SELECT * FROM messegesFromCustomers"; 
       var id=Request.Form["msgID"]; 
       var msg=Request.Form["answer"]; 
       var user=Request.Form["user"]; 

       foreach(var row in db.Query(selectQuery)) 
       { 
        if(row.messegeID == Convert.ToInt32(id)) 
        { 
         if(row.isCustomer == "yes")// **send the messege to customer account** 
         { 
          var insertQuery="UPDATE messegesFromCustomers SET [email protected] WHERE [email protected]"; 
          db.Execute(insertQuery,msg,id); 
          Response.Write("<script>alert('your answer sent successfully');</script>"); 
          break; 
         } 
         else 
         { 
          // **Send messege to Occasional customer via email** 
         // **here I want to add code for sending email...** 


          string from = "[email protected]"; 
          string to = "[email protected]"; 
          string subject = "Hi!"; 
          string body = "How are you?"; 
          SmtpMail.SmtpServer = "mail.gmail.com"; 
          SmtpMail.Send(from, to, subject, body); 

          break; 
         } 
        } 
       } 

      } 

} 



} 

내가보기에 WebMail.Send (...)를 사용하려고하지만 어떻게 작동하는지 모르겠다. ... 그 외에도 누군가가 코드 을 추가해야한다고 썼다. Web.config 또는 그와 비슷한 것 ....

도움을 주셔서 감사합니다.

편집 : 나는 코드를 편집하고 난 줄 넣어 다음 asp.net 페이지의 상단에

<%@ Import Namespace="System.Web.Mail" %> 

을하지만 난이 오류를 얻을 :

파서 오류 메시지 : 공백 또는 라인을 "@"문자 뒤에 break가 발생했습니다. 유효한 식별자, 키워드, 주석, "("및 "{"는 코드 블록의 시작 부분에서 유효하며 그 사이에 공백없이 "@"바로 다음에 나타나야합니다.)

아무에게도 정확한 위치를 지정할 수 있습니까 ? 코드

+0

건초 다시 ... 당신이 내 편집 코드를 볼 수 있습니다 오류가있는 이유를 말해 주시겠습니까? 감사... – ofirhgy

답변

0

here에서 난이 추가 내 코드에서 그

에 대한 해결책을 발견하고 이메일이 성공적으로 전송 :

if(isCustomer == "yes") 
       { 

        db.Execute(insertQuery,msg,id); 
        db.Execute(deleteQuery,id); 
       } 

       else 
       { 
        WebMail.SmtpServer = "smtp.gmail.com"; 
        WebMail.EnableSsl = true; 
        WebMail.SmtpPort = 587;//25 
        WebMail.UserName = "my gmail user name"; 
        WebMail.Password = "my gmail password"; 
        WebMail.From = "my address of email"; 
        // Send email 
        WebMail.Send(
        to: email, 
        subject: "Message from "some name of site" - Site", 
        body: msg); 

        db.Execute(deleteQuery,id);  

       } 
0

첫째, 우리는 System.Web.Mail 네임 스페이스를 가져와야 :

<%@ Import Namespace="System.Web.Mail" %> 

메시지를 전송하면 다음 인수와 SmtpMail.Send() 호출의 문제이다. sender, recipient, subjectbody을 예를 들어, 우리는 ' d와 같은 이메일을 C#에서 보내십시오. is :

string from = "[email protected]"; 
string to = "[email protected]"; 
string subject = "Hi!"; 
string body = "How are you?"; 
SmtpMail.SmtpServer = "mail.example.com"; 
SmtpMail.Send(from, to, subject, body); 

메시지 배달에 사용되는 메일 서버를 지정할 수 있습니다.

내용

+0

이 줄을 삽입해야하는 곳은 ASP 페이지의 첫 번째 규칙에 <% @ Import Namespace = "System.Web.Mail"%> – ofirhgy

+0

입니다. – avb

+0

건초 다시 ... 내 편집 된 코드를보고 오류가있는 이유를 말해 줄 수 있습니까? 감사... – ofirhgy

관련 문제