Roseane Postado Dezembro 27, 2008 Denunciar Share Postado Dezembro 27, 2008 (editado) Por favor, criei um script em ASP para enviar os dados de um formulário por email, porém, quando clico em ENVIAR aparece esse erro de destinatário inválido: 554 5.5.1 Error: no valid recipients :blink: Segue o script abaixo:Será q alguém poderia me ajudar, por favor?<% Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = request.form("nome") Mailer.FromAddress = request.form("email") Mailer.RemoteHost = "smtp.dominio.com.br" Mailer.AddRecipient "contato","contato@dominio.com.br" Mailer.ContentType = "text/html" Mailer.Subject = "Contato pelo site" Mailer.BodyText = "Nome........... " & request.form("nome") & vbcrlf Mailer.BodyText = "E-mail......... " & request.form("email") & vbcrlf Mailer.BodyText = "Cidade......... " & request.form("cidade") & vbcrlf Mailer.BodyText = "Estado......... " & request.form("estado") & vbcrlf Mailer.BodyText = "Telefone......... " & request.form("telefone") & vbcrlf Mailer.BodyText = "Assunto......... " & request.form("assunto") & vbcrlf Mailer.BodyText = "Mensagem........ " & request.form("mensagem") & vbcrlf if Mailer.SendMail then Response.redirect "obrigado.html" else Response.Write mailer.response end if %>Obrigada Editado Dezembro 28, 2008 por Rafael Spilki Tags Code! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 +.jr_Designer.+ Postado Dezembro 28, 2008 Denunciar Share Postado Dezembro 28, 2008 Bom dia Roseane!Não sei o que está errado com o script que você postou, mas se quiser pode substituí-lo por este que funciona.<% nome = request.Form("nome") email = request.form("email") fone = request.Form("telefone") mensagem = request.Form("comentario") mensagem = replace(mensagem, "<br>", chr(13)) 'cria o objeto para o envio de e-mail' Set objCDOSYSMail = Server.CreateObject("CDO.Message") 'cria o objeto para configuração do SMTP' Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration") 'SMTP' objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "LOCALHOST"'"mail.meusite.com.br" 'porta do SMTP objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'porta do CDO' objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'timeout' objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 objCDOSYSCon.Fields.update 'atualiza a configuração do CDOSYS para o envio do e-mail' Set objCDOSYSMail.Configuration = objCDOSYSCon 'e-mail do remetente' objCDOSYSMail.From = email 'e-mail preenchido no form 'e-mail do destinatário' objCDOSYSMail.To = "destinatario@provedor.com.br" 'assunto da mensagem objCDOSYSMail.Subject = "Assunto do email" 'conteúdo da mensagem' objCDOSYSMail.TextBody = mensagem 'objCDOSYSMail.fields.update ' 'envia o e-mail' objCDOSYSMail.Send 'destrói os objetos' Set objCDOSYSMail = Nothing Set objCDOSYSCon = Nothing end if %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 28, 2008 Autor Denunciar Share Postado Dezembro 28, 2008 então, aí que tá, tb n sei ql o erro, ms testarei esse que me mandou. Obrigada!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 28, 2008 Denunciar Share Postado Dezembro 28, 2008 Boa tarde.você está tentando mandar pra qual endereço?Mailer.AddRecipient "contato","contato@dominio.com.br"aqui deve estar o erro... contato está sendo passado como string por causa das aspas dupla... o que significa que vai como texto... e a palavra "contato" não é endereço de e-mail...Depois tb não adianta ficar testando scripts... o que lhe indicaram é cdo.sys, o seu aspmail, tem que ver qual o componente você tem disponível pra depois começar a programar! Cheque com o server![]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 29, 2008 Autor Denunciar Share Postado Dezembro 29, 2008 (editado) É, não deu certo mesmo o script que ele passou. Então, como eu devo colocar? O email para qual qro q o formulário seja enviado é 'contato@dominio.com.br'.O servidor comporta ASPMAIL porém a unica "exigencia" é qo FROM seje um email do domínio. já corrigi isso, ms ainda assim n funciona o MAILER.ADDRECIPIENTObrigada pela atenção!!! Editado Dezembro 30, 2008 por Roseane Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 30, 2008 Autor Denunciar Share Postado Dezembro 30, 2008 554 5.5.1 Error: no valid recipientsEsse é o erro que aparece!!!! <_< Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 +.jr_Designer.+ Postado Dezembro 30, 2008 Denunciar Share Postado Dezembro 30, 2008 Você fez o teste do script que te mandei on-line? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 30, 2008 Denunciar Share Postado Dezembro 30, 2008 Jr_Designer, o script q você mandou usa um componente chamado CDO.SYS, se o servidor dela não o suporta fica impossível ele funcionar!Roseane, eu tentaria essa linha de três formas:Mailer.AddRecipient "contato@dominio.com.br" ou Mailer.AddRecipient contato@dominio.com.brAgora, note que exitem dois componentes de nome parecido: aspmail e aspEmail... o seu script é de aspmail... tem certeza que é este que o server disponibiliza?[]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 30, 2008 Autor Denunciar Share Postado Dezembro 30, 2008 (editado) Obrigada pessoal. Desisti desse script e fiz um outro, tb porque o cliente pediu para os campos NOME E EMAIL serem obrigatorios.. FUNCIONOUUU!! lol ..rsrsPorém, na hr que recebo o email ele vem assim:nome=roseaneemail=roseane.designer@terra.com.brcidade=SãoPaulo estado=SPtelefone=xx-xxxx-xxxxassunto=Testemensagem=TesteTá td colaaaaaaado.. =/Como eu faço pra vir arrumadinho, assim:Nome:RoseaneEmail: email@servidor.com.brCidade: Sampa Estado: SPTelefone:xx-xxxx-xxxxAssunto: TesteMensagem: TesteSegue o código abaixo:<%@language = "VBscript"%><%Dim strErrorResponse.Buffer = True If ScriptEngineMajorVersion < 2 ThenReportError "Host system needs scripting engine upgrade to use this script"End IfSet objFM = CreateObject("Scripting.Dictionary")If IsObject(objFM) = False ThenReportError "Host system lacks component(s) required by this script"End IfSet objMailx = CreateObject("CDONTS.Newmail")If IsObject(objMailx) = False ThenReportError "Host system lacks component(s) required by this script"End IfSet objMailx = Nothing%><%variaveis%><%strRcpt = "email@dominio.com.br" 'Endereço que vai receber o formulariostrFromVar = "email" 'Email de respostastrDefFrom = "email@dominio.com.br" 'Email padrãostrDefSubject = "Contato pelo site " 'Assunto do emailstrRedirect = "obrigado.html" 'Página de agradecimeno%><%'variables you can set end here%><%ParseFormCheckFormIf Len(strError) > 0 ThenReportError strErrorEnd IfstrOutX = SeqFormIf Len(strOutX) < 1 Then strOutX = FormToStringEnd IfIf Len(strOutX) < 1 Then ReportError "Submitted form is empty"End IfstrSubject = strDefSubjectIf objFM.Exists("TGsubject") ThenstrSubject = objFM.Item("TGsubject")End IfstrFrom = strDefFromIf Len(strFromVar) > 0 Then If objFM.Exists(strFromVar) Then strFrom = objFM.Item(strFromVar) End If End IfSendMail strFrom,strRcpt,strSubject,strOutXIf Len(strRedirect) > 0 Then Response.redirect(strRedirect) Response.EndEnd IfIf objFM.Exists("TGredirect") = True ThenIf Len(objFM.Item("TGredirect")) > 0 Then Response.redirect(objFM.Item("TGredirect"))Response.EndEnd IfEnd If%><%CreditResponse.End%><%Function IsValidEmail(Email)Dim Temp,Temp2strNotValid = "<br>Endereço de email inválido"strTooLong = "<br>Endereço de email muito extenso"If Len(Email) > 100 ThenReportError strTooLongEnd IfEmail = LCase(Email)Temp = Split(Email,"@",2,1)If UBound(Temp) < 1 ThenReportError strNotValidEnd IfTemp2 = Split(Temp(1),".",-1,1)If UBound(Temp2) < 1 ThenReportError strNotValidEnd IfEnd Function%><%Function SendMail(From,Rcpt,Subject,Body)Trim(From)Trim(Rcpt)If Len(From) < 1 Then ReportError strError & "<br>Não responder esse email"End IfIf Len(Rcpt) < 1 ThenReportError strError & "<br>Sem destinatário para o email"End IfIsValidEmail RcptIsValidEmail FromSet objMailer = CreateObject("CDONTS.Newmail")objMailer.From = FromobjMailer.To = RcptobjMailer.Subject = SubjectobjMailer.Body = BodyobjMailer.SendSet objMailer = NothingEnd Function%><%Function CheckForm()Dim Temp,strTmp,strForcestrInputReq = "<br>É necessário o preenchimento do "If objFM.Exists("TGrequire") = False Then Exit Function ElseIf isEmpty(objFM.Item("TGrequire")) Then Exit FunctionEnd IfstrForce = objFM.Item("TGrequire")Temp = Split(strForce,",",-1,1)For Each strTmp in Temp If objFM.Exists(strTmp) = False Then strError = strError & strInputReq & strTmp ElseIf Len(objFM.Item(strTmp)) < 1 Then strError = strError & strInputReq & strTmp End If NextEnd Function%><%Function ParseForm()For Each Item in Request.Form If objFM.Exists(Item) Then objFM.Item(Item) = objFM.Item(Item) & "," & Request.QueryString(Item) Else objFM.Add Item,Request.Form(Item) End IfNextFor Each Item in Request.QueryString If objFM.Exists(Item) Then objFM.Item(Item) = objFM.Item(Item) & "," & Request.QueryString(Item) Else objFM.Add Item,Request.QueryString(Item) End IfNextEnd Function%><%Function SeqForm()Dim Temp,strTmp,strOrder,strOutIf objFM.Exists("TGorder") = False Then Exit Function ElseIf isEmpty(objFM.Item("TGorder")) Then Exit FunctionEnd IfstrOrder = objFM.Item("TGorder")Temp = Split(strOrder,",",-1,1)For Each strTmp in Temp If objFM.Exists(strTmp) Then strOut = strOut & strTmp & "=" & objFM.Item(strTmp) & Chr(10) End If NextSeqForm = strOutEnd Function%><%Function FormToString()Dim strOutstrKeys = objFM.KeysstrValues = objFM.ItemsFor intCnt = 0 To objFM.Count -1 strOut = strOut & strKeys(intCnt) & "=" & strValues(intCnt) & Chr(10)NextFormToString = strOutEnd Function%><%Function ReportError(strMess)If Len(strMess) < 1 ThenstrMess = strErrorEnd IfstrErr = "Ocorreram os seguintes erros<br>" & strMessResponse.Clear%><h1>Ocorreu um erro!</h1><%'Mesangem de erro%><%Response.Write(strErr)%><p><b>Clique em <i><a href="index.html">Voltar</a></i> e corrija as entradas</b></p><%CreditResponse.EndEnd Function%><%Function Credit%><p align=center><font face="Arial,Helvetica" size=1>Assinatura</p><%End Function%>E assim está no form: <form action="aspmailer.asp" method="POST"> <!--TGrequire: Campos obrigatorios--> <input type="hidden" name="TGrequire" value="nome,email"> <!--TGorder: Ordem das informacoes--> <input type="hidden" name="TGorder" value="nome,email,telefone,cidade,estado,assunto,mensagem,"> <!--TGsubject: Assunto do email--> <input type="hidden" name="TGsubject" value="Contato pelo site"> <!--TGredirect: URL de agradecimento--> <input type="hidden" name="TGredirect" value="obrigado.html">Bom é isso aí! To enchendo o saco de vocês, né?? =DBrigadão mesmo, é q eu n desisto nunca, por isso vou ficar cutucando até dar certo..rsrsrs Editado Dezembro 30, 2008 por Roseane Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 30, 2008 Denunciar Share Postado Dezembro 30, 2008 coloque & vbCrLf entre as variaveis que formam o corpo da mensagem...ou seja:nome & vbCrLf & telefone & vbCrLf & endereço...[]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 30, 2008 Autor Denunciar Share Postado Dezembro 30, 2008 (editado) É aí que tá o problema. Desculpe a ignorância, ms onde exatamente eu posso substituir a variavel TGorder. q é o que compõe o corpo da mensagem? porque eu tentei em todos do script e deu erro...=/ Essa variável é opcional, ms se eu a retiro, como o script depende dela, n funciona, dai n sei exatamente onde posso fazerr a substituição...Esse é o trecho da função de envio de email<% Function SendMail(From,Rcpt,Subject,Body) Trim(From) Trim(Rcpt) If Len(From) < 1 Then ReportError strError & "<br>Não responder esse email" End If If Len(Rcpt) < 1 Then ReportError strError & "<br>Sem destinatário para o email" End If IsValidEmail Rcpt IsValidEmail From Set objMailer = CreateObject("CDONTS.Newmail") objMailer.From = From objMailer.To = Rcpt objMailer.Subject = Subject objMailer.Body = Body objMailer.Send Set objMailer = Nothing End Function %> Esse outro pedaço que contém a função com a variavel TGorder <% Function SeqForm() Dim Temp,strTmp,strOrder,strOut If objFM.Exists("TGorder") = False Then Exit Function ElseIf isEmpty(objFM.Item("TGorder")) Then Exit Function End If strOrder = objFM.Item("TGorder") Temp = Split(strOrder,",",-1,1) For Each strTmp in Temp If objFM.Exists(strTmp) Then strOut = strOut & strTmp & "=" & objFM.Item(strTmp) & Chr(10) End If Next SeqForm = strOut End Function %> E no form essa mesma TGorder fica assim <!--TGorder: Ordem das informacoes--> <input type="hidden" name="TGorder" value="nome,email,telefone,cidade,estado,assunto,mensagem,"> Editado Dezembro 30, 2008 por Roseane Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 30, 2008 Autor Denunciar Share Postado Dezembro 30, 2008 Fiz assim e agora só recebo o campo mensagem.. lol... lesada pá ca...rsrsrs<% Function SendMail(From,Rcpt,Subject,Body) Trim(From) Trim(Rcpt) If Len(From) < 1 Then ReportError strError & "<br>Não responder esse email" End If If Len(Rcpt) < 1 Then ReportError strError & "<br>Sem destinatário para o email" End If IsValidEmail Rcpt IsValidEmail From Set objMailer = CreateObject("CDONTS.Newmail") objMailer.From = From objMailer.To = Rcpt objMailer.Subject = Subject objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf objMailer.Body = "E-mail..... " & request.form("email") & vbcrlf objMailer.Body = "Cidade..... " & request.form("cidade") & vbcrlf objMailer.Body = "Estado..... " & request.form("estado") & vbcrlf objMailer.Body = "Telefone... " & request.form("telefone") & vbcrlf objMailer.Body = "Assunto.... " & request.form("assunto") & vbcrlf objMailer.Body = "Mensagem... " & request.form("mensagem") & vbcrlf objMailer.Send Set objMailer = Nothing End Function %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 +.jr_Designer.+ Postado Dezembro 30, 2008 Denunciar Share Postado Dezembro 30, 2008 (editado) objMailer.Body = "Nome....... " & request.form("nome") & vbcrlfobjMailer.Body = "E-mail..... " & request.form("email") & vbcrlfobjMailer.Body = "Cidade..... " & request.form("cidade") & vbcrlfobjMailer.Body = "Estado..... " & request.form("estado") & vbcrlfobjMailer.Body = "Telefone... " & request.form("telefone") & vbcrlfobjMailer.Body = "Assunto.... " & request.form("assunto") & vbcrlfobjMailer.Body = "Mensagem... " & request.form("mensagem") & vbcrlfTente assim:objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf &"E-mail..... " & request.form("email") & vbcrlf &"Cidade..... " & request.form("cidade") & vbcrlf &"Estado..... " & request.form("estado") & vbcrlf &"Telefone... " & request.form("telefone") & vbcrlf &"Assunto.... " & request.form("assunto") & vbcrlf &"Mensagem... " & request.form("mensagem") & vbcrlf Editado Dezembro 30, 2008 por +.jr_Designer.+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 30, 2008 Denunciar Share Postado Dezembro 30, 2008 assim:objMailer.Body = "Nome....... " & request.form("nome") & vbcrlf & "E-mail..... " & request.form("email") & vbcrlf & "Cidade..... " & request.form("cidade") & vbcrlf & "Estado..... " & request.form("estado") & vbcrlf & "Telefone... " & request.form("telefone") & vbcrlf & "Assunto.... " & request.form("assunto") & vbcrlf & "Mensagem... " & request.form("mensagem")[]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Roseane Postado Dezembro 30, 2008 Autor Denunciar Share Postado Dezembro 30, 2008 Deu certooooooOOOO..brigaaaaaaada, Rafael.. Jr. vlw a força, ms meu servidor de hospedagem, só Jesus, foi dificil ms achei um script q ele aceite!!!...rsrsrsUfa.. agora é terminar o restante do trabalho!!!Um FELIZ ANO NOVO à vocês!!!Tudo de bom, muitos trabalhos e q todos redam muito, tanto em conhecimento quanto em R$..rsrsrsBjãoOOO ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Roseane
Por favor, criei um script em ASP para enviar os dados de um formulário por email, porém, quando clico em ENVIAR aparece esse erro de destinatário inválido: 554 5.5.1 Error: no valid recipients :blink:
Segue o script abaixo:
Será q alguém poderia me ajudar, por favor?
Obrigada
Editado por Rafael SpilkiTags Code!
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.