Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

razs

[Resolvido] mail form

Recommended Posts

Boas, a coisa de um ano consegui por a funcionar um sistema de contactos por email, hoje utilizei o mesmo sistema numa outra pagina no mesmo provedor de serviços e nada, nao faz nada.

 

<%@ Language=VBScript%>
<!--#include file="css.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<%
'if Request.Form("nome")="" or Request.Form("email")="" or Request.Form("assunto")="" or Request.Form("mensagem")="" then
'response.redirect ("contacts.asp?erro=Fields mark with * are mandatory") 
'else



mes = ""
IsSuccess = false


sTo = "rsimoes@aibili.pt"
sFrom = Trim(Request.Form("email"))
sSubject = Trim(Request.Form("assunto"))
sMailServer = "127.0.0.1"

'stxtBody =  Trim(Request.Form("nome"))  & vbCrLf & Trim(Request.Form("centro"))  & vbCrLf & Trim(Request.Form("telefone")) & vbCrLf & & vbCrLf & Trim(Request.Form("mensagem"))


stxtBody =  Trim(Request.Form("nome"))  & vbCrLf & Trim(Request.Form("centro")) & vbCrLf & Trim(Request.Form("mensagem"))

if Request.querystring("actnow")="gonow" then
 gonow()
end if

Sub gonow()

response.write Request.Form("email")%><br><%
response.write Request.Form("assunto")%><br><%
response.write Request.Form("nome")%><br><%
response.write Request.Form("centro")%><br><%
response.write Request.Form("telefone")%><br><%
response.write Request.Form("mensagem")%><br><%





 Set objMail = Server.CreateObject("CDO.Message")
 Set objConf = Server.CreateObject("CDO.Configuration")
 Set objFields = objConf.Fields

 With objFields
   .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")  = sMailServer
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
   .Update
 End With

 With objMail
   Set .Configuration = objConf
   .From = sFrom
   .To = sTo
   .Subject = sSubject
   .TextBody = stxtBody
   '.CreateMHTMLBody = shtmlbody
  End With

   Err.Clear 
 on error resume next

   objMail.Send
 if len(Err.Description) = 0 then
       mes = " Message sent to " + sTo
       mes = mes + " COMPLETED SUCCESSFULLY!"
       IsSuccess = true

   else
   mes = " " + Err.Description + " TESTS FAILED!"
 end if
 Set objFields = Nothing
 Set objConf = Nothing
 Set objMail = Nothing
call Alert(html)
End sub

Sub Alert(html)
 if IsSuccess then
   Response.Write "<div class='testRelults' id='testSuccessful'><span class='testResult'>Success:</span>" & html & "</div>"
 else
   Response.Write "<div class='testRelults' id='testFailed'><span class='testResult'>Fail:</span>" & html & "</div>"
 end if
End Sub
'end if
%>

</head>

<body>


</head>
<body>
<div id="wrapper1">
<div id="wrapper2">
<div id="container">
       </div>

       <div id="rightcolumn">


<div class="twocolumn">	
  <h1>Contact Form</h1>

<form id="insform" action="contacts.asp?actnow=gonow&tp=<%= rnd(1)*100*timer %>" method="POST">
   <input id="actnow" type="hidden" value="" />

<div class="field"><label>Name</label><input type="text" name="nome" id="textboxes" >*</div>
<div class="field"><label>E-mail:</label><input type="text" name="email" id="textboxes" >*</div>
<div class="field"><label>Telephone:</label><input type="text" name="telefone" id="textboxes"></div>
<div class="field"><label>Institute:</label><input type="text" name="centro" id="textboxes" ></div>
<div class="field"><label>Subject:</label><input type="text" name="assunto" id="textboxes">*</div>
<div class="field"><label>Message:</label><textarea cols="" name="mensagem" id="textboxes" rows="5"></textarea>*</div>
</div>	
<br><input type="image" class="image" id="insform" name="insform" src="images/ok.jpg">
<br><br><br><% response.write request.queryString("erro") %>												
</form>
           <div class="spacetobottom"></div>         

       </div>
 	</div>

 <div id="footer"></div>
   </div>

</div> 
</div>

</body>
</html>

 

Xan, visto que o script é teu e foste tu que me ajudas-te da outra vez, alguma ideia?

 

 

ele nao da erro nenhum devolve todos os response.writes e a msg de fail no fim.

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto é estranho ele corre tudo e da a mensagem de erro predefenida.

 

razstec@gmail.com

assunto de testes

nome de testes

centro de testes

telefone de testes

Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes, Mensagem de testes,

Fail: At least one of the From or Sender fields is required, and neither was found. TESTS FAILED!

 

Mas eu tenho os campos com dados :S

 

sTo = "razs@gmail.com"
sFrom = Trim(Request.Form("email"))
sSubject = Trim(Request.Form("assunto"))
sMailServer = "127.0.0.1"
stxtBody =  Trim(Request.Form("nome")) & vbCrLf & Trim(Request.Form("centro"))  & vbCrLf & Trim(Request.Form("telefone")) & vbCrLf &  Trim(Request.Form("mensagem"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

o seu sMailServer esta aposntando para o local host 127.0.0.1

você deve mudar ele para o gmail, ja que esta usando o email do mesmo, ou mudar essas config.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva, eu alterei o email de from para um email do dominio em questao como tenho noutro projecto e nao faz nada.

 

Mas ja na outra pagina, ele esta com o from vindo do form e funciona normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva, alterei como disseste mas continua na mesma.... nao percebo o erro que ele da nao tem logica de ser.

 


<%
mes = ""
IsSuccess = false
Dim actnow 
actnow = request.querystring("actnow")

if var_mal="pass" then
if session("email")="" then
response.redirect ("recpass1.asp?erro=Fields mark with * are mandatory") 
else

'sTo = session("email")
sTo = "razstec@hotmail.com"
sFrom = "razstec@gmail.com"
sSubject = "New password "
sMailServer = "smtp.gmail.com"
stxtBody = "Your new password is" & vbCrLf & session("pass") & vbCrLf & "please login and change it."
stxtBody = stxtBody & "<br><br><img src='http://users9.jabry.com/usercorc/images/banner.jpg'><br>" 
end if
elseif var_mal="new_user" then
if Request.querystring("p")="" or Request.querystring("n")="" or Request.querystring("e")="" then
response.redirect ("reguser.asp?erro=Fields mark with * are mandatory") 
else
Dim p
Dim n
Dim e
p=Request.querystring("p")
n=Request.querystring("n")
e=Request.querystring("e")


sTo = Trim(Request.querystring("e"))
sFrom = "razstec@gmail.com"
sSubject = "Corc Registration"
sMailServer = "smtp.gmail.com"
stxtBody =  Trim("'&n&'") &", you are now registered in CORC Website please login and update your profile, Your password is " & Trim("'&p&'") & vbCrLf & "Best Regards"&  vbCrLf & "Corc Suport"&  vbCrLf & "http://www.corc.pt"

end if
elseif var_mal="contac" then
if Request.Form("nome")="" or Request.Form("email")="" or Request.Form("assunto")="" or Request.Form("mensagem")="" then
response.redirect ("contacts.asp?erro=Fields mark with * are mandatory") 
else
	sTo = "razstec@hotmail.com"
               sFrom = "razstec@gmail.com"
	sSubject = Trim(Request.Form("assunto"))
	sMailServer = "smtp.gmail.com"

	stxtBody = Trim(Request.Form("email")) & vbCrLf &  Trim(Request.Form("nome")) & vbCrLf & Trim(Request.Form("centro"))  & vbCrLf & Trim(Request.Form("telefone")) & vbCrLf &  Trim(Request.Form("mensagem"))
end if

else
end if











if Request.querystring("actnow")="gonow" then
 gonow()
end if

Sub gonow()

 Set objMail = Server.CreateObject("CDO.Message")
 Set objConf = Server.CreateObject("CDO.Configuration")
 Set objFields = objConf.Fields

 With objFields
   .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")  = sMailServer
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
   .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
   .Update
 End With

 With objMail
   Set .Configuration = objConf
   .From = sFrom
   .To = sTo
   .Subject = sSubject
   .TextBody = stxtBody
   '.CreateMHTMLBody = shtmlbody
  End With

   Err.Clear 
 on error resume next

   objMail.Send
 if len(Err.Description) = 0 then
       mes = " Message sent to " + sTo
       mes = mes + " SUCCESSFULLY!"
       IsSuccess = true

   else
   mes = " " + Err.Description + " EMAIL FAILED!"
 end if
 Set objFields = Nothing
 Set objConf = Nothing
 Set objMail = Nothing
call Alert(html)
End sub

Sub Alert(html)
 if IsSuccess then
   Response.Write "<div class='testRelults' id='testSuccessful'><span class='testResult'>Success:</span>" & mes & "</div>"
 else
   Response.Write "<div class='testRelults' id='testFailed'><span class='testResult'>Fail:</span>" & mes & "</div>"
 end if
End Sub
'end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo usando o gmail

 

<%
'on error resume next
Para=Request.Form("To")
Assunto=Request.Form("Subject")
Mensagem=Request.form("Body")



sch = "http://schemas.microsoft.com/cdo/configuration/" 

Set cdoConfig = Server.CreateObject("CDO.Configuration") 


cdoConfig.Fields.Item(sch & "sendusing") = 2 
cdoConfig.Fields.Item(sch & "smtpauthenticate") = 1 
cdoConfig.Fields.Item(sch & "smtpusessl") = True
cdoConfig.Fields.Item(sch & "smtpserverport") = 465
cdoConfig.Fields.Item(sch & "smtpserver") = "smtp.gmail.com" 
cdoConfig.Fields.Item(sch & "sendusername") = "meuemail@gmail.com" 
cdoConfig.Fields.Item(sch & "sendpassword") = "minha senha" 
cdoConfig.fields.update 

Set cdoMessage = Server.CreateObject("CDO.Message") 
Set cdoMessage.Configuration = cdoConfig 

cdoMessage.From = "meuemail@gmail.com" 
cdoMessage.To = "Para"
cdoMessage.Subject = Assunto 
cdoMessage.HTMLBody = Mensagem
x = cdoMessage.Send 

if x > 0 then
       Response.Write x
       Response.End
       else
       response.write "Sua mensagem foi enviada com sucesso!"
End if

Set cdoMessage = Nothing 
Set cdoConfig = Nothing 



%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas, obrigado.

 

Fiz alterações utilizando o teu script, agora tenho um erro de expected statement

 

|94|800a0400|Expected_statement

 

a linha 94 é a ultima linha, nao vejo o que seja.

 

<%
mes = ""
IsSuccess = false
Dim actnow 
actnow = request.querystring("actnow")

if var_mal="pass" then
if session("email")="" then
response.redirect ("recpass1.asp?erro=Fields mark with * are mandatory") 
else

'sTo = session("email")
sTo = "razstec@hotmail.com"
sFrom = "rsimoes@aibili.pt"
sSubject = "New password for CORC"
sMailServer = "smtp.gmail.com"
stxtBody = "Your new password is" & vbCrLf & session("pass") & vbCrLf & "please login and change it."
stxtBody = stxtBody & "<br><br><img src='http://users9.jabry.com/usercorc/images/banner.jpg'><br>" 
end if

elseif var_mal="new_user" then
if Request.querystring("p")="" or Request.querystring("n")="" or Request.querystring("e")="" then
response.redirect ("reguser.asp?erro=Fields mark with * are mandatory") 
else
Dim p
Dim n
Dim e
p=Request.querystring("p")
n=Request.querystring("n")
e=Request.querystring("e")


sTo = Trim(Request.querystring("e"))
sTo = "razstec@gmail.com"
sSubject = "Corc Registration"
sMailServer = "smtp.gmail.com"
stxtBody =  Trim("'&n&'") &", you are now registered in CORC Website please login and update your profile, Your password is " & Trim("'&p&'") & vbCrLf & "Best Regards"&  vbCrLf & "Corc Suport"&  vbCrLf & "http://www.corc.pt"
end if

elseif var_mal="contac" then
if Request.Form("nome")="" or Request.Form("email")="" or Request.Form("assunto")="" or Request.Form("mensagem")="" then
response.redirect ("contacts.asp?erro=Fields mark with * are mandatory") 
else
	sTo = "razstec@hotmail.com"
	sFrom = "razstec@gmail.com"
	sSubject = Trim(Request.Form("assunto"))
	sMailServer = "smtp.gmail.com"

	stxtBody = Trim(Request.Form("email")) & vbCrLf &  Trim(Request.Form("nome")) & vbCrLf & Trim(Request.Form("centro"))  & vbCrLf & Trim(Request.Form("telefone")) & vbCrLf &  Trim(Request.Form("mensagem"))
end if

end if

if Request.querystring("actnow")="gonow" then
 gonow()
end if

Sub gonow()

sch = "http://schemas.microsoft.com/cdo/configuration/" 

Set cdoConfig = Server.CreateObject("CDO.Configuration") 


cdoConfig.Fields.Item(sch & "sendusing") = 2 
cdoConfig.Fields.Item(sch & "smtpauthenticate") = 1 
cdoConfig.Fields.Item(sch & "smtpusessl") = True
cdoConfig.Fields.Item(sch & "smtpserverport") = 465
cdoConfig.Fields.Item(sch & "smtpserver") = "smtp.gmail.com" 
cdoConfig.Fields.Item(sch & "sendusername") = "razstec@gmail.com" 
cdoConfig.Fields.Item(sch & "sendpassword") = "123456" 
cdoConfig.fields.update 

Set cdoMessage = Server.CreateObject("CDO.Message") 
Set cdoMessage.Configuration = cdoConfig 

cdoMessage.From = "razstec@gmail.com" 
cdoMessage.To = sto
cdoMessage.Subject = sSubject 
cdoMessage.HTMLBody = stxtBody 
x = cdoMessage.Send 

if x > 0 then
       Response.Write x
       Response.End
       else
       response.write "Sua mensagem foi enviada com sucesso!"
End if

Set cdoMessage = Nothing 
Set cdoConfig = Nothing 

end sub
end if

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você habilitou ele pelo gmail ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim eu ja uso esta conta pelo outlook a alguns anos.

 

Tinha aqui duas coisitas mal, corrigi, agora ja nao da erro mas nao faz nada.

 

<%
mes = ""
IsSuccess = false
Dim actnow 
actnow = request.querystring("actnow")

if var_mal="pass" then
if session("email")="" then
response.redirect ("recpass1.asp?erro=Fields mark with * are mandatory") 
else

'sTo = session("email")
sTo = "rsimoes@aibili.pt"
sFrom = "rsimoes@aibili.pt"
sSubject = "New password for CORC"
stxtBody = "Your new password is" & vbCrLf & session("pass") & vbCrLf & "please login and change it."
stxtBody = stxtBody & "<br><br><img src='http://users9.jabry.com/usercorc/images/banner.jpg'><br>" 
end if

elseif var_mal="new_user" then
if Request.querystring("p")="" or Request.querystring("n")="" or Request.querystring("e")="" then
response.redirect ("reguser.asp?erro=Fields mark with * are mandatory") 
else
Dim p
Dim n
Dim e
p=Request.querystring("p")
n=Request.querystring("n")
e=Request.querystring("e")


sTo = Trim(Request.querystring("e"))
sFrom = "rsimoes@gmail.com"
sSubject = "Corc Registration"
stxtBody =  Trim("'&n&'") &", you are now registered in CORC Website please login and update your profile, Your password is " & Trim("'&p&'") & vbCrLf & "Best Regards"&  vbCrLf & "Corc Suport"&  vbCrLf & "http://www.corc.pt"
end if

elseif var_mal="contac" then
if Request.Form("nome")="" or Request.Form("email")="" or Request.Form("assunto")="" or Request.Form("mensagem")="" then
response.redirect ("contacts.asp?erro=Fields mark with * are mandatory") 
else
	sTo = "rsimoes@gmail.com"
	sFrom = "razstec@gmail.com"
	sSubject = Trim(Request.Form("assunto"))


	stxtBody = Trim(Request.Form("email")) & vbCrLf &  Trim(Request.Form("nome")) & vbCrLf & Trim(Request.Form("centro"))  & vbCrLf & Trim(Request.Form("telefone")) & vbCrLf &  Trim(Request.Form("mensagem"))
end if

end if







if Request.querystring("actnow")="gonow" then

sch = "http://schemas.microsoft.com/cdo/configuration/" 

Set cdoConfig = Server.CreateObject("CDO.Configuration") 

cdoConfig.Fields.Item(sch & "sendusing") = 2 
cdoConfig.Fields.Item(sch & "smtpauthenticate") = 1 
cdoConfig.Fields.Item(sch & "smtpusessl") = True
cdoConfig.Fields.Item(sch & "smtpserverport") = 465
cdoConfig.Fields.Item(sch & "smtpserver") = "smtp.gmail.com" 
cdoConfig.Fields.Item(sch & "sendusername") = "razstec@gmail.com" 
cdoConfig.Fields.Item(sch & "sendpassword") = "123456" 
cdoConfig.fields.update 

Set cdoMessage = Server.CreateObject("CDO.Message") 
Set cdoMessage.Configuration = cdoConfig 

cdoMessage.From = "razstec@gmail.com" 
cdoMessage.To = sto
cdoMessage.Subject = sSubject 
cdoMessage.TextBody = stxtBody
'cdoMessage.HTMLBody = shtmlBody 
x = cdoMessage.Send 

if x > 0 then
       Response.Write x
       Response.End
       else
       response.write "Sua mensagem foi enviada com sucesso!"
End if

Set cdoMessage = Nothing 
Set cdoConfig = Nothing 
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Finalmente ja funciona, pelo menos a opcao de contac, o resto tambem deve funcionar certamente.

 

Aqui vai o codigo

 

<%
mes = ""
IsSuccess = false
Dim actnow 
actnow = request.querystring("actnow")

if Request.querystring("var_mal")="pass" then
if session("email")="" then
response.redirect ("recpass1.asp?erro=Fields mark with * are mandatory") 
else

sTo = session("email")
sFrom = "razstec@gmail.com"
sSubject = "New password"
stxtBody = "Your new password is" & vbCrLf & session("pass") & vbCrLf & "please login and change it."
stxtBody = stxtBody & "<br><br><img src='http://users9.jabry.com/images/banner.jpg'><br>" 
end if
end if

if Request.querystring("var_mal")="new_user" then
if Request.querystring("p")="" or Request.querystring("n")="" or Request.querystring("e")="" then
response.redirect ("reguser.asp?erro=Fields mark with * are mandatory") 
else
Dim p
Dim n
Dim e
p=Request.querystring("p")
n=Request.querystring("n")
e=Request.querystring("e")


sTo = Trim(Request.querystring("e"))
sFrom = "razstec@gmail.com"
sSubject = "Registration"
stxtBody =  Trim("'&n&'") &", you are now registered in Website please login and update your profile, Your password is " & Trim("'&p&'") & vbCrLf & "Best Regards"
end if
end if

if Request.querystring("var_mal")="contac" then
if Request.Form("nome")="" or Request.Form("email")="" or Request.Form("assunto")="" or Request.Form("mensagem")="" then
response.redirect ("contacts.asp?erro=Fields mark with * are mandatory") 
else
	sTo = "razstec@hotmail.pt"
	sFrom = "razstec@gmail.com"
	sSubject = Trim(Request.Form("assunto"))
	stxtBody = Trim(Request.Form("email")) & vbCrLf &  Trim(Request.Form("nome")) & vbCrLf & Trim(Request.Form("centro"))  & vbCrLf & Trim(Request.Form("telefone")) & vbCrLf &  Trim(Request.Form("mensagem"))
end if
end if


if Request.querystring("actnow")="gonow" then

sch = "http://schemas.microsoft.com/cdo/configuration/" 

Set cdoConfig = Server.CreateObject("CDO.Configuration") 
cdoConfig.Fields.Item(sch & "sendusing") = 2 
cdoConfig.Fields.Item(sch & "smtpauthenticate") = 1 
cdoConfig.Fields.Item(sch & "smtpusessl") = True
cdoConfig.Fields.Item(sch & "smtpserverport") = 465
cdoConfig.Fields.Item(sch & "smtpserver") = "smtp.gmail.com" 
cdoConfig.Fields.Item(sch & "sendusername") = "razstec@gmail.com" 
cdoConfig.Fields.Item(sch & "sendpassword") = "123456" 
cdoConfig.fields.update 
Set cdoMessage = Server.CreateObject("CDO.Message") 
Set cdoMessage.Configuration = cdoConfig 

cdoMessage.From = "razstec@gmail.com" 
cdoMessage.To = sto
cdoMessage.Subject = sSubject 
cdoMessage.TextBody = stxtBody
'cdoMessage.HTMLBody = shtmlBody 
x = cdoMessage.Send 
if x > 0 then
       Response.Write x
       Response.End
       else
       response.write "Sua mensagem foi enviada com sucesso!"
End if

Set cdoMessage = Nothing 
Set cdoConfig = Nothing
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

algumas vzes isso pode ser uma instabilidade do serviço de SMTP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ultimamente o que tenho visto mais sao coisas estranhas, agora a moda para os meus lados sao paginas que estavam a funcionar normalmente e agora dao erros, como por exemplo uma pagina que nao faz nada apartir de um rs.fields("data_nasc")=request.form("data_nascm") coisa mais simples e estranhamente sem dar erro para ali... enfim... alguem me lancou um bruxedo :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

entre em contato com seu host, veja se esta tudo normal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

xan, o script esta a funcionar mas se eu utilizar um email especifico no sTo ele funciona bem mas se eu defenir o

sTo=trim(request.querystring("e"))

ele ja nao funciona, estou a fazer alguma coisa mal??

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta vindo os dados pelo request.querystring("e")

Compartilhar este post


Link para o post
Compartilhar em outros sites

para fins de exemplo ,tente passar o email recuperado atraves de session e depois coloque

sTo=trim(session("e"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

ótimo, que bom que resolveu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.