0

SendEmail.asp ファイルと Home.htm ファイルの 2 つのファイルがあります。

Home.htm では、VB スクリプトのいくつかの値を SendEmail に渡しています。

document.formname.action = "SendEmail.asp?homepage =" + window.location.href;

電子メールが正常に完了したら、パラメーターを htm ファイルに送信し、成功のメッセージを表示します。

現在、次の方法で home.htm にリダイレクトしています。

response.redirect(request.QueryString("homepage"))

そのようなクエリ文字列を追加するとhome.htm?n1=success、エラーが発生します。あなたの貴重な提案と答えを教えてください。

home.htm ファイルのコード:

<script language="javascript" type="text/javascript"> 
function fnSubmit()
{
  var retValue=true;
  if(retValue)
  {
    if(document.formname.txtName.value=='')
    {
        alert("Please enter Name");
        document.formname.txtName.focus();
        retValue=false;
    }
  }
  if(retValue)
  {
    if(checkEmail(document.formname.txtEmail, "Email", false)==false)
    {
        alert("Please enter Email");
        document.formname.txtEmail.focus();
        retValue=false;
    }
  }
  if(retValue)
  {
    if(document.formname.txtPhone.value=='')
    {
        alert("Please enter Phone No.");
        document.formname.txtPhone.focus();
        retValue=false;
    }
  }
  if(retValue)
  {
    if(document.formname.txtQuery.value=='')
    {
        alert("Please enter Your Query");
        document.formname.txtQuery.focus();
        retValue=false;
    }
  }
  if(retValue)
  {      
      document.formname.action = "SendEmail.asp?homepage =" + window.location.href;
      document.formname.submit(); 
  }
return false;

</script>

ボタンクリック時:

onclick="javascript:fnSubmit();" 

SendEmail.asp ファイル内:

<%@  language="VBScript" %>
<%Option Explicit%>
<%
Dim Uploader, File, FileSys, FilePath, UploadFileName, strHTML, subject, Mailer, EmailAddress
subject = request("txtSubject")
EmailAddress = request("txtEmail")
strHTML = " Name : "&request("txtName")&" Email : "&request("txtEmail")&" Query : "&request("txtQuery")

Set Mailer=CreateObject("CDO.Message")
        Mailer.Subject="accurate-data-entry.com:: new"&subject
        Mailer.From= request("txtEmail")                
        Mailer.To="abc@gmail.com "
        Mailer.HTMLBody=strHTML        
        Mailer.Configuration.Fields.Item _
       ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465  
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
        Mailer.Configuration.Fields.Item _
        ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
Mailer.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Mailer.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendusername") ="abc@gmail.com" 
Mailer.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="xyz"  
        Mailer.Configuration.Fields.Update
        Mailer.send
        Set Mailer = nothing   
'Response.write("Done Successful") 
response.redirect(request.QueryString("homepage "))
%>

Response.Write を追加すると、次のエラー メッセージが表示されます。

CDO.Message.1 エラー '80040213'

トランスポートがサーバーに接続できませんでした。

/SendEmail.asp、41行目

41 行目は Mailer.send です。

ありがとう

4

1 に答える 1

0

jquery を使用して AJAx でフォームを送信する必要があります。Jquery はすべてのフォーム変数を受け取り、それらを ASP ページに送信して電子メールを送信します。asp ページで、response.redirect を削除します。リダイレクトは必要なく、ajax 応答を壊します。代わりに、aspページでresponse.write「THANKS FOR YOUR MESSAGE」などを行います。

Jquery Ajax のドキュメントをご覧ください。

    $.ajax({
   type: "POST",
   url: "SendEmail.asp",
   dataType: 'text',
   data: { username: username, password: password },
   success: function(data) {
     if(data == 'Incorrect password'){
       $('#results_callback').html(data);        
     }
     else{
       $('#results').html(data);
     }
   },
   error: function(msg) {
    alert("O NOES");
   }
});
于 2012-11-27T09:20:34.280 に答える